diff --git a/docs/ADDRESS/1.txt b/docs/ADDRESS/1.txt index c769077..cd80250 100644 --- a/docs/ADDRESS/1.txt +++ b/docs/ADDRESS/1.txt @@ -1,435 +1,31 @@ -# Assistant conversation export -session_id: asst-HwpNV6T2XO +# Assistant conversation export +session_id: asst-zxYGpU4649 export_mode: technical -exported_at: 2026-04-01T16:22:16.775Z +exported_at: 2026-04-01T18:13:48.663Z ## 1. user -message_id: msg-LXFxFvHMjy -created_at: 2026-04-01T16:20:29.759Z +message_id: msg-dUqZNUZhhW +created_at: 2026-04-01T18:10:36.307Z reply_type: n/a -Какой остаток по счету 60 на май 2020 +СЃРІРє РґРѕРєРё Р·Р° 20РіРѕРґ покеж ## 2. assistant -message_id: msg-f4QDcIh8Ra -created_at: 2026-04-01T16:20:35.415Z +message_id: msg-YvtqQMDBq3 +created_at: 2026-04-01T18:10:41.189Z reply_type: factual -trace_id: address-wfjQbLaPF0 +trace_id: address-uoi_yk2ev3 -Адресный срез по счету собран (по движениям live MCP). -Строк отобрано: 6. -Сумма по отобранным движениям: 849499. -1. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299 -2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 75367 -3. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 211833 -4. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 187967 +Собран СЃРїРёСЃРѕРє документов РїРѕ контрагенту (live address lane). +Строк отобрано: 3. +1. 2020-12-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000044 РѕС‚ 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа РЎР’Рљ +2. 2020-12-16T16:20:53Z | Поступление РЅР° расчетный счет 00000000043 РѕС‚ 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа РЎР’Рљ +3. 2020-12-14T12:00:00Z | Поступление РЅР° расчетный счет 00000000042 РѕС‚ 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа РЎР’Рљ ### technical_debug_payload_json ```json { - "trace_id": "address-wfjQbLaPF0", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "address_action_detected", - "address_entity_detected", - "aggregate_signal_detected", - "account_balance_signal_detected" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "high", - "query_shape": "AGGREGATE_LOOKUP", - "query_shape_confidence": "high", - "detected_intent": "account_balance_snapshot", - "detected_intent_confidence": "high", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "account": "60", - "period_from": "2020-05-01", - "period_to": "2020-05-31", - "as_of_date": "2020-05-31" - }, - "missing_required_filters": [], - "selected_recipe": "address_movements_account_snapshot_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "strict", - "account_scope_fallback_applied": false, - "anchor_type": "account", - "anchor_value_raw": "60", - "anchor_value_resolved": "60", - "resolver_confidence": "high", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 6, - "raw_rows_received": 6, - "rows_after_account_scope": 6, - "rows_after_recipe_filter": 6, - "rows_materialized": 6, - "rows_matched": 6, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Period", - "Registrator", - "AccountDt", - "AccountKt", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": "60", - "account_token_normalized": "60", - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "rows_remaining_after_scope_filter", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_SUMMARY", - "execution_lane": "address_query", - "llm_decomposition_applied": true, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "i0pMbD6A0Kfwwe", - "llm_decomposition_effective_message": "Определить остаток по счету 60 на май 2020 года.", - "llm_decomposition_reason": "raw_fragment_applied", - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "i0pMbD6A0Kfwwe", - "prompt_version": "normalizer_v2_0_2", - "applied": true, - "effective_message": "Определить остаток по счету 60 на май 2020 года." - } -} -``` - -## 3. user -message_id: msg-bSI5HDsrEG -created_at: 2026-04-01T16:20:41.904Z -reply_type: n/a - -Какой остаток по счету 60 на 2020.05 - -## 4. assistant -message_id: msg-R9Bdu1_mwQ -created_at: 2026-04-01T16:20:47.626Z -reply_type: factual -trace_id: address-HGr18_l4u9 - -Адресный срез по счету собран (по движениям live MCP). -Строк отобрано: 6. -Сумма по отобранным движениям: 849499. -1. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299 -2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 75367 -3. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 211833 -4. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 187967 - -### technical_debug_payload_json -```json -{ - "trace_id": "address-HGr18_l4u9", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "address_action_detected", - "address_entity_detected", - "aggregate_signal_detected", - "account_balance_signal_detected" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "high", - "query_shape": "AGGREGATE_LOOKUP", - "query_shape_confidence": "high", - "detected_intent": "account_balance_snapshot", - "detected_intent_confidence": "high", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "account": "60", - "period_from": "2020-05-01", - "period_to": "2020-05-31", - "as_of_date": "2020-05-31" - }, - "missing_required_filters": [], - "selected_recipe": "address_movements_account_snapshot_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "strict", - "account_scope_fallback_applied": false, - "anchor_type": "account", - "anchor_value_raw": "60", - "anchor_value_resolved": "60", - "resolver_confidence": "high", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 6, - "raw_rows_received": 6, - "rows_after_account_scope": 6, - "rows_after_recipe_filter": 6, - "rows_materialized": 6, - "rows_matched": 6, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Period", - "Registrator", - "AccountDt", - "AccountKt", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": "60", - "account_token_normalized": "60", - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "rows_remaining_after_scope_filter", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_SUMMARY", - "execution_lane": "address_query", - "llm_decomposition_applied": true, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "F9Z2ar78WSI6_p", - "llm_decomposition_effective_message": "Определить остаток по счету 60 на конец мая 2020 года.", - "llm_decomposition_reason": "raw_fragment_applied", - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "F9Z2ar78WSI6_p", - "prompt_version": "normalizer_v2_0_2", - "applied": true, - "effective_message": "Определить остаток по счету 60 на конец мая 2020 года." - } -} -``` - -## 5. user -message_id: msg-jG7p8LlecZ -created_at: 2026-04-01T16:20:54.188Z -reply_type: n/a - -Какой остаток по счету 60 на 2020 май - -## 6. assistant -message_id: msg-K1BNDw4OQ_ -created_at: 2026-04-01T16:20:59.871Z -reply_type: factual -trace_id: address-LDNpl6ws4o - -Адресный срез по счету собран (по движениям live MCP). -Строк отобрано: 6. -Сумма по отобранным движениям: 849499. -1. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299 -2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 75367 -3. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 211833 -4. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 187967 - -### technical_debug_payload_json -```json -{ - "trace_id": "address-LDNpl6ws4o", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "address_action_detected", - "address_entity_detected", - "aggregate_signal_detected", - "account_balance_signal_detected" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "high", - "query_shape": "AGGREGATE_LOOKUP", - "query_shape_confidence": "high", - "detected_intent": "account_balance_snapshot", - "detected_intent_confidence": "high", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "account": "60", - "period_from": "2020-05-01", - "period_to": "2020-05-31", - "as_of_date": "2020-05-31" - }, - "missing_required_filters": [], - "selected_recipe": "address_movements_account_snapshot_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "strict", - "account_scope_fallback_applied": false, - "anchor_type": "account", - "anchor_value_raw": "60", - "anchor_value_resolved": "60", - "resolver_confidence": "high", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 6, - "raw_rows_received": 6, - "rows_after_account_scope": 6, - "rows_after_recipe_filter": 6, - "rows_materialized": 6, - "rows_matched": 6, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Period", - "Registrator", - "AccountDt", - "AccountKt", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": "60", - "account_token_normalized": "60", - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "rows_remaining_after_scope_filter", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_SUMMARY", - "execution_lane": "address_query", - "llm_decomposition_applied": true, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "lT4cg7WUCFBLgw", - "llm_decomposition_effective_message": "Определить остаток по счету 60 на май 2020 года.", - "llm_decomposition_reason": "raw_fragment_applied", - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "lT4cg7WUCFBLgw", - "prompt_version": "normalizer_v2_0_2", - "applied": true, - "effective_message": "Определить остаток по счету 60 на май 2020 года." - } -} -``` - -## 7. user -message_id: msg-yAb2z9q4f8 -created_at: 2026-04-01T16:21:27.684Z -reply_type: n/a - -Покажи сальдо по счету 60.01 на дату 2020-07-31 - -## 8. assistant -message_id: msg-phnVMmFBTg -created_at: 2026-04-01T16:21:33.413Z -reply_type: factual -trace_id: address-gZwPQVl-EQ - -Адресный срез по счету собран (по движениям live MCP). -Строк отобрано: 5. -Сумма по отобранным движениям: 216200. -1. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 13.07.2020 12:00:02 | 41.01 / 60.01 | 74400 -2. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 13.07.2020 12:00:02 | 41.01 / 60.01 | 57600 -3. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 13.07.2020 12:00:02 | 41.01 / 60.01 | 42400 -4. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 13.07.2020 12:00:02 | 41.01 / 60.01 | 34200 - -### technical_debug_payload_json -```json -{ - "trace_id": "address-gZwPQVl-EQ", + "trace_id": "address-uoi_yk2ev3", "prompt_version": "address_query_runtime_v1", "schema_version": "address_query_runtime_v1", "fallback_type": "none", @@ -453,8 +49,8 @@ trace_id: address-gZwPQVl-EQ "missing_requirements": [], "reasons": [ "address_entity_detected", - "aggregate_signal_detected", - "account_balance_signal_detected" + "shape_not_detected", + "documents_by_counterparty_signal_detected" ], "why_included_summary": [], "selection_reason_summary": [] @@ -462,52 +58,50 @@ trace_id: address-gZwPQVl-EQ "dropped_intent_segments": [], "detected_mode": "address_query", "detected_mode_confidence": "medium", - "query_shape": "AGGREGATE_LOOKUP", - "query_shape_confidence": "high", - "detected_intent": "account_balance_snapshot", - "detected_intent_confidence": "high", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", "extracted_filters": { "sort": "period_desc", "limit": 20, - "account": "60.01", - "period_from": "2020-07-01", - "period_to": "2020-07-31", - "as_of_date": "2020-07-31" + "counterparty": "СЃРІРє", + "period_from": "2020-01-01", + "period_to": "2020-12-31" }, "missing_required_filters": [], - "selected_recipe": "address_movements_account_snapshot_v1", + "selected_recipe": "address_documents_by_counterparty_v1", "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "strict", + "account_scope_mode": "preferred", "account_scope_fallback_applied": false, - "anchor_type": "account", - "anchor_value_raw": "60.01", - "anchor_value_resolved": "60.01", - "resolver_confidence": "high", + "anchor_type": "counterparty", + "anchor_value_raw": "СЃРІРє", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", "match_failure_reason": null, "mcp_call_status": "matched_non_empty", - "rows_fetched": 5, - "raw_rows_received": 5, + "rows_fetched": 20, + "raw_rows_received": 20, "rows_after_account_scope": 5, - "rows_after_recipe_filter": 5, + "rows_after_recipe_filter": 3, "rows_materialized": 5, - "rows_matched": 5, + "rows_matched": 3, "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", "Period", "Registrator", - "AccountDt", - "AccountKt", "Amount" ], "materialization_drop_reason": "none", - "account_token_raw": "60.01", - "account_token_normalized": "60.1", + "account_token_raw": null, + "account_token_normalized": null, "account_scope_fields_checked": [ "account_dt", "account_kt", @@ -515,54 +109,52 @@ trace_id: address-gZwPQVl-EQ "analytics" ], "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "account_scope_drop_reason": "not_applicable", "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", "limited_reason_category": null, - "response_type": "FACTUAL_SUMMARY", + "response_type": "FACTUAL_LIST", "execution_lane": "address_query", - "llm_decomposition_applied": true, + "llm_decomposition_applied": false, "llm_decomposition_attempted": true, "llm_provider_used": "local", - "llm_decomposition_trace_id": "SCPdcYqxpPIQId", - "llm_decomposition_effective_message": "Показать сальдо по счету 60.01 на дату 2020-07-31", - "llm_decomposition_reason": "raw_fragment_applied", + "llm_decomposition_trace_id": "xqnSGswL4AdNhc", + "llm_decomposition_effective_message": "СЃРІРє РґРѕРєРё Р·Р° 20РіРѕРґ покеж", + "llm_decomposition_reason": "normalized_fragment_same", "answer_structure_v11": null, "investigation_state_snapshot": null, "normalized": null, "normalizer_output": { - "trace_id": "SCPdcYqxpPIQId", + "trace_id": "xqnSGswL4AdNhc", "prompt_version": "normalizer_v2_0_2", - "applied": true, - "effective_message": "Показать сальдо по счету 60.01 на дату 2020-07-31" + "applied": false, + "effective_message": "СЃРІРє РґРѕРєРё Р·Р° 20РіРѕРґ покеж" } } ``` -## 9. user -message_id: msg-5feV35vJpK -created_at: 2026-04-01T16:21:45.871Z +## 3. user +message_id: msg-86J5F3oayb +created_at: 2026-04-01T18:10:44.797Z reply_type: n/a -Какие документы формируют остаток по счету 60.01 на дату 2020-07-31 +СЃРІРє 20 РіРѕРґ - покажи РґРѕРєРё плс -## 10. assistant -message_id: msg-uNew3MaEgs -created_at: 2026-04-01T16:21:51.764Z +## 4. assistant +message_id: msg-CVGhma30h8 +created_at: 2026-04-01T18:10:51.453Z reply_type: factual -trace_id: address-MUotfXkAFf +trace_id: address-_CPGzp56UH -Адресный срез по счету собран (по движениям live MCP). -Строк отобрано: 5. -Сумма по отобранным движениям: 216200. -1. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 13.07.2020 12:00:02 | 41.01 / 60.01 | 74400 -2. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 13.07.2020 12:00:02 | 41.01 / 60.01 | 57600 -3. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 13.07.2020 12:00:02 | 41.01 / 60.01 | 42400 -4. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 13.07.2020 12:00:02 | 41.01 / 60.01 | 34200 +Собран СЃРїРёСЃРѕРє документов РїРѕ контрагенту (live address lane). +Строк отобрано: 3. +1. 2020-12-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000044 РѕС‚ 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа РЎР’Рљ +2. 2020-12-16T16:20:53Z | Поступление РЅР° расчетный счет 00000000043 РѕС‚ 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа РЎР’Рљ +3. 2020-12-14T12:00:00Z | Поступление РЅР° расчетный счет 00000000042 РѕС‚ 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа РЎР’Рљ ### technical_debug_payload_json ```json { - "trace_id": "address-MUotfXkAFf", + "trace_id": "address-_CPGzp56UH", "prompt_version": "address_query_runtime_v1", "schema_version": "address_query_runtime_v1", "fallback_type": "none", @@ -588,7 +180,7 @@ trace_id: address-MUotfXkAFf "address_action_detected", "address_entity_detected", "document_list_signal_detected", - "account_balance_signal_detected" + "documents_by_counterparty_signal_detected" ], "why_included_summary": [], "selection_reason_summary": [] @@ -598,6 +190,674 @@ trace_id: address-MUotfXkAFf "detected_mode_confidence": "high", "query_shape": "DOCUMENT_LIST", "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "РЎР’Рљ", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 3, + "rows_materialized": 5, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "b5soOIJ5ttBOw4", + "llm_decomposition_effective_message": "РЎР’Рљ 20 РіРѕРґ - показать документы, пожалуйста.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "b5soOIJ5ttBOw4", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "РЎР’Рљ 20 РіРѕРґ - показать документы, пожалуйста." + } +} +``` + +## 5. user +message_id: msg-it76aW4qHD +created_at: 2026-04-01T18:10:53.136Z +reply_type: n/a + +что РїРѕ СЃРІРє Р·Р° 2020 РіРѕРґ выведи РІСЃРµ РґРѕРєРё плиз что есть + +## 6. assistant +message_id: msg-KXpASiK2Zo +created_at: 2026-04-01T18:10:59.547Z +reply_type: factual +trace_id: address-lcvLCZGqsQ + +Собран СЃРїРёСЃРѕРє документов РїРѕ контрагенту (live address lane). +Строк отобрано: 3. +1. 2020-12-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000044 РѕС‚ 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа РЎР’Рљ +2. 2020-12-16T16:20:53Z | Поступление РЅР° расчетный счет 00000000043 РѕС‚ 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа РЎР’Рљ +3. 2020-12-14T12:00:00Z | Поступление РЅР° расчетный счет 00000000042 РѕС‚ 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа РЎР’Рљ + +### technical_debug_payload_json +```json +{ + "trace_id": "address-lcvLCZGqsQ", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "loose_by_anchor_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "РЎР’Рљ", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 3, + "rows_materialized": 5, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "uFllh8ted5XVzn", + "llm_decomposition_effective_message": "Получить РІСЃРµ документы РїРѕ РЎР’Рљ Р·Р° 2020 РіРѕРґ.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "uFllh8ted5XVzn", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Получить РІСЃРµ документы РїРѕ РЎР’Рљ Р·Р° 2020 РіРѕРґ." + } +} +``` + +## 7. user +message_id: msg-hv0z5I9ohR +created_at: 2026-04-01T18:11:04.236Z +reply_type: n/a + +какие документы РїРѕ контрагенту СЃРІРє Р·Р° РІСЃРµ время + +## 8. assistant +message_id: msg-OpgszUl9a7 +created_at: 2026-04-01T18:11:10.000Z +reply_type: factual +trace_id: address-SY1EolHeLV + +Собран СЃРїРёСЃРѕРє документов РїРѕ контрагенту (live address lane). +Строк отобрано: 26. +1. 2021-11-10T12:00:07Z | Поступление РЅР° расчетный счет 00000000013 РѕС‚ 10.11.2021 12:00:07 | 0 / 0 | 20000 | аналитика: Группа РЎР’Рљ +2. 2021-09-29T12:00:03Z | Поступление РЅР° расчетный счет 00000000012 РѕС‚ 29.09.2021 12:00:03 | 0 / 0 | 50000 | аналитика: Группа РЎР’Рљ +3. 2021-08-31T12:00:04Z | Поступление РЅР° расчетный счет 00000000011 РѕС‚ 31.08.2021 12:00:04 | 0 / 0 | 120500 | аналитика: Группа РЎР’Рљ +4. 2021-06-22T12:00:00Z | Поступление РЅР° расчетный счет 00000000010 РѕС‚ 22.06.2021 12:00:00 | 0 / 0 | 498630 | аналитика: Группа РЎР’Рљ +5. 2021-06-09T12:00:05Z | Поступление РЅР° расчетный счет 00000000009 РѕС‚ 09.06.2021 12:00:05 | 0 / 0 | 418960 | аналитика: Группа РЎР’Рљ +6. 2021-04-28T12:00:08Z | Поступление РЅР° расчетный счет 00000000008 РѕС‚ 28.04.2021 12:00:08 | 0 / 0 | 564300 | аналитика: Группа РЎР’Рљ +7. 2021-04-22T12:00:00Z | Поступление РЅР° расчетный счет 00000000007 РѕС‚ 22.04.2021 12:00:00 | 0 / 0 | 982420 | аналитика: Группа РЎР’Рљ +8. 2021-04-13T12:00:11Z | Поступление РЅР° расчетный счет 00000000006 РѕС‚ 13.04.2021 12:00:11 | 0 / 0 | 1882400 | аналитика: Группа РЎР’Рљ +9. 2021-03-25T12:00:02Z | Поступление РЅР° расчетный счет 00000000005 РѕС‚ 25.03.2021 12:00:02 | 0 / 0 | 644315 | аналитика: Группа РЎР’Рљ +10. 2021-03-24T12:00:03Z | Поступление РЅР° расчетный счет 00000000004 РѕС‚ 24.03.2021 12:00:03 | 0 / 0 | 1219990 | аналитика: Группа РЎР’Рљ +11. 2021-03-18T12:00:00Z | Поступление РЅР° расчетный счет 00000000003 РѕС‚ 18.03.2021 12:00:00 | 0 / 0 | 1425310 | аналитика: Группа РЎР’Рљ +12. 2021-03-12T12:00:03Z | Поступление РЅР° расчетный счет 00000000002 РѕС‚ 12.03.2021 12:00:03 | 0 / 0 | 214600 | аналитика: Группа РЎР’Рљ +13. 2021-02-19T12:00:01Z | Поступление РЅР° расчетный счет 00000000001 РѕС‚ 19.02.2021 12:00:01 | 0 / 0 | 518600 | аналитика: Группа РЎР’Рљ +14. 2020-12-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000044 РѕС‚ 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа РЎР’Рљ +15. 2020-12-16T16:20:53Z | Поступление РЅР° расчетный счет 00000000043 РѕС‚ 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа РЎР’Рљ +16. 2020-12-14T12:00:00Z | Поступление РЅР° расчетный счет 00000000042 РѕС‚ 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа РЎР’Рљ +17. 2020-11-30T12:00:07Z | Поступление РЅР° расчетный счет 00000000041 РѕС‚ 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа РЎР’Рљ +18. 2020-11-19T12:00:04Z | Поступление РЅР° расчетный счет 00000000039 РѕС‚ 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа РЎР’Рљ +19. 2020-11-18T12:00:05Z | Поступление РЅР° расчетный счет 00000000038 РѕС‚ 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа РЎР’Рљ +20. 2020-11-18T12:00:04Z | Поступление РЅР° расчетный счет 00000000037 РѕС‚ 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа РЎР’Рљ +21. 2020-11-13T12:00:03Z | Поступление РЅР° расчетный счет 00000000036 РѕС‚ 13.11.2020 12:00:03 | 0 / 0 | 313600 | аналитика: Группа РЎР’Рљ +22. 2020-11-10T15:39:13Z | Поступление РЅР° расчетный счет 00000000035 РѕС‚ 10.11.2020 15:39:13 | 0 / 0 | 328300 | аналитика: Группа РЎР’Рљ +23. 2020-10-26T12:00:00Z | Поступление РЅР° расчетный счет 00000000034 РѕС‚ 26.10.2020 12:00:00 | 0 / 0 | 175000 | аналитика: Группа РЎР’Рљ +24. 2020-08-20T12:00:06Z | Поступление РЅР° расчетный счет 00000000032 РѕС‚ 20.08.2020 12:00:06 | 0 / 0 | 3126005 | аналитика: Группа РЎР’Рљ +25. 2020-07-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000029 РѕС‚ 30.07.2020 12:00:00 | 0 / 0 | 20000 | аналитика: Группа РЎР’Рљ +26. 2020-07-27T12:00:00Z | Поступление РЅР° расчетный счет 00000000028 РѕС‚ 27.07.2020 12:00:00 | 0 / 0 | 40860 | аналитика: Группа РЎР’Рљ + +### technical_debug_payload_json +```json +{ + "trace_id": "address-SY1EolHeLV", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "РЎР’Рљ" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 124, + "rows_after_recipe_filter": 26, + "rows_materialized": 124, + "rows_matched": 26, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "wVuhR9CK60_7kI", + "llm_decomposition_effective_message": "Получить СЃРїРёСЃРѕРє документов РїРѕ контрагенту РЎР’Рљ Р·Р° весь период времени.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "wVuhR9CK60_7kI", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Получить СЃРїРёСЃРѕРє документов РїРѕ контрагенту РЎР’Рљ Р·Р° весь период времени." + } +} +``` + +## 9. user +message_id: msg-zAM1kx6yVn +created_at: 2026-04-01T18:11:12.112Z +reply_type: n/a + +РґРѕРєРё РїРѕ СЃРІРє СЃ 01.07.2020 РїРѕ 31.07.2020 + +## 10. assistant +message_id: msg-4icrCxrkOn +created_at: 2026-04-01T18:11:17.899Z +reply_type: factual +trace_id: address-3ZkNldRurx + +Собран СЃРїРёСЃРѕРє документов РїРѕ контрагенту (live address lane). +Строк отобрано: 2. +1. 2020-07-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000029 РѕС‚ 30.07.2020 12:00:00 | 0 / 0 | 20000 | аналитика: Группа РЎР’Рљ +2. 2020-07-27T12:00:00Z | Поступление РЅР° расчетный счет 00000000028 РѕС‚ 27.07.2020 12:00:00 | 0 / 0 | 40860 | аналитика: Группа РЎР’Рљ + +### technical_debug_payload_json +```json +{ + "trace_id": "address-3ZkNldRurx", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "loose_by_anchor_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "РЎР’Рљ", + "period_from": "2020-07-01", + "period_to": "2020-07-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 19, + "raw_rows_received": 19, + "rows_after_account_scope": 3, + "rows_after_recipe_filter": 2, + "rows_materialized": 3, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "yBWDVajeIbF6ID", + "llm_decomposition_effective_message": "Документы РїРѕ РЎР’Рљ СЃ 01.07.2020 РїРѕ 31.07.2020", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "yBWDVajeIbF6ID", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Документы РїРѕ РЎР’Рљ СЃ 01.07.2020 РїРѕ 31.07.2020" + } +} +``` + +## 11. user +message_id: msg-B7HuCUd3Ip +created_at: 2026-04-01T18:11:19.945Z +reply_type: n/a + +СЃРІРє июль 2020 какие РґРѕРєРё есть + +## 12. assistant +message_id: msg-B2nSw16b5t +created_at: 2026-04-01T18:11:26.245Z +reply_type: partial_coverage +trace_id: address-UG7BvLA5nz + +Для точного адресного РїРѕРёСЃРєР° РЅРµ хватает обязательного СЏРєРѕСЂСЏ. +Причина: СЏРєРѕСЂСЊ контрагента/РґРѕРіРѕРІРѕСЂР° РЅРµ найден РІ материализованных live-строках. +Что РЅСѓР¶РЅРѕ уточнить: уточните контрагента точным именем или добавьте ИНН/РґРѕРіРѕРІРѕСЂ. + +### technical_debug_payload_json +```json +{ + "trace_id": "address-UG7BvLA5nz", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "какие", + "period_from": "2020-07-01", + "period_to": "2020-07-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "какие", + "anchor_value_resolved": "какие", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 19, + "raw_rows_received": 19, + "rows_after_account_scope": 3, + "rows_after_recipe_filter": 0, + "rows_materialized": 3, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "missing_anchor", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "RoUZKlMB3aYY2a", + "llm_decomposition_effective_message": "скажите, какие документы есть РІ РЎР’Рљ Р·Р° июль 2020 РіРѕРґР°", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "RoUZKlMB3aYY2a", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "скажите, какие документы есть РІ РЎР’Рљ Р·Р° июль 2020 РіРѕРґР°" + } +} +``` + +## 13. user +message_id: msg-Owg0bJkch5 +created_at: 2026-04-01T18:11:27.616Z +reply_type: n/a + +покажи сальдо РїРѕ 60.01 РЅР° 31.07.20 + +## 14. assistant +message_id: msg-SNuEKPOy4Q +created_at: 2026-04-01T18:11:33.181Z +reply_type: factual +trace_id: address-p8EUzas5Y7 + +Адресный срез РїРѕ счету собран (РїРѕ движениям live MCP). +Строк отобрано: 5. +РЎСѓРјРјР° РїРѕ отобранным движениям: 216200. +1. 2020-07-13T12:00:02Z | Поступление товаров Рё услуг 00000000029 РѕС‚ 13.07.2020 12:00:02 | 41.01 / 60.01 | 74400 +2. 2020-07-13T12:00:02Z | Поступление товаров Рё услуг 00000000029 РѕС‚ 13.07.2020 12:00:02 | 41.01 / 60.01 | 57600 +3. 2020-07-13T12:00:02Z | Поступление товаров Рё услуг 00000000029 РѕС‚ 13.07.2020 12:00:02 | 41.01 / 60.01 | 42400 +4. 2020-07-13T12:00:02Z | Поступление товаров Рё услуг 00000000029 РѕС‚ 13.07.2020 12:00:02 | 41.01 / 60.01 | 34200 + +### technical_debug_payload_json +```json +{ + "trace_id": "address-p8EUzas5Y7", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", "detected_intent": "account_balance_snapshot", "detected_intent_confidence": "high", "extracted_filters": { @@ -628,11 +888,11 @@ trace_id: address-MUotfXkAFf "rows_materialized": 5, "rows_matched": 5, "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", "Period", "Registrator", "AccountDt", @@ -657,42 +917,712 @@ trace_id: address-MUotfXkAFf "llm_decomposition_applied": true, "llm_decomposition_attempted": true, "llm_provider_used": "local", - "llm_decomposition_trace_id": "K3_LT-taCw3G6_", - "llm_decomposition_effective_message": "Показать документы, формирующие остаток по счету 60.01 на дату 2020-07-31", - "llm_decomposition_reason": "raw_fragment_applied", + "llm_decomposition_trace_id": "-9qzfil1exFqlu", + "llm_decomposition_effective_message": "Показать остаток РїРѕ счету 60.01 РЅР° дату 31.07.2020.", + "llm_decomposition_reason": "normalized_fragment_applied", "answer_structure_v11": null, "investigation_state_snapshot": null, "normalized": null, "normalizer_output": { - "trace_id": "K3_LT-taCw3G6_", + "trace_id": "-9qzfil1exFqlu", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы, формирующие остаток по счету 60.01 на дату 2020-07-31" + "effective_message": "Показать остаток РїРѕ счету 60.01 РЅР° дату 31.07.2020." } } ``` -## 11. user -message_id: msg-jLJS0_9JeA -created_at: 2026-04-01T16:22:02.102Z +## 15. user +message_id: msg-Shv1Av8RG4 +created_at: 2026-04-01T18:11:34.223Z reply_type: n/a -Покажи банковские операции по контрагенту СВК за 2020 год +остаток 60 РЅР° 2020.05 -## 12. assistant -message_id: msg-6ITp6xDQ5N -created_at: 2026-04-01T16:22:08.109Z -reply_type: partial_coverage -trace_id: address-UkUDVPyDcS +## 16. assistant +message_id: msg-lENUBxHze0 +created_at: 2026-04-01T18:11:39.266Z +reply_type: factual +trace_id: address-xeRGRITsfe -Для точного адресного поиска не хватает обязательного якоря. -Причина: якорь контрагента/договора не найден в материализованных live-строках. -Что нужно уточнить: уточните контрагента точным именем или добавьте ИНН/договор. +Адресный срез РїРѕ счету собран (РїРѕ движениям live MCP). +Строк отобрано: 6. +РЎСѓРјРјР° РїРѕ отобранным движениям: 849499. +1. 2020-05-22T10:14:43Z | Списание СЃ расчетного счета 00000000148 РѕС‚ 22.05.2020 10:14:43 | 60.02 / 51 | 142299 +2. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 75367 +3. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 211833 +4. 2020-05-18T12:00:02Z | Списание СЃ расчетного счета 00000000145 РѕС‚ 18.05.2020 12:00:02 | 60.01 / 51 | 187967 ### technical_debug_payload_json ```json { - "trace_id": "address-UkUDVPyDcS", + "trace_id": "address-xeRGRITsfe", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 6, + "raw_rows_received": 6, + "rows_after_account_scope": 6, + "rows_after_recipe_filter": 6, + "rows_materialized": 6, + "rows_matched": 6, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "jEVRKsQNtsnZI-", + "llm_decomposition_effective_message": "остаток РїРѕ счету 60 РЅР° май 2020 РіРѕРґР°", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "jEVRKsQNtsnZI-", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "остаток РїРѕ счету 60 РЅР° май 2020 РіРѕРґР°" + } +} +``` + +## 17. user +message_id: msg-hgB0K2Nmai +created_at: 2026-04-01T18:11:43.137Z +reply_type: n/a + +какой остаток РїРѕ счету 60 РЅР° 2020 май + +## 18. assistant +message_id: msg-_2FWo_xaMf +created_at: 2026-04-01T18:11:48.402Z +reply_type: factual +trace_id: address-jM7DpzDJWW + +Адресный срез РїРѕ счету собран (РїРѕ движениям live MCP). +Строк отобрано: 6. +РЎСѓРјРјР° РїРѕ отобранным движениям: 849499. +1. 2020-05-22T10:14:43Z | Списание СЃ расчетного счета 00000000148 РѕС‚ 22.05.2020 10:14:43 | 60.02 / 51 | 142299 +2. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 75367 +3. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 211833 +4. 2020-05-18T12:00:02Z | Списание СЃ расчетного счета 00000000145 РѕС‚ 18.05.2020 12:00:02 | 60.01 / 51 | 187967 + +### technical_debug_payload_json +```json +{ + "trace_id": "address-jM7DpzDJWW", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 6, + "raw_rows_received": 6, + "rows_after_account_scope": 6, + "rows_after_recipe_filter": 6, + "rows_materialized": 6, + "rows_matched": 6, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "bNmxpcIb4gNL5c", + "llm_decomposition_effective_message": "Определить остаток РїРѕ счету 60 РЅР° май 2020 РіРѕРґР°.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "bNmxpcIb4gNL5c", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Определить остаток РїРѕ счету 60 РЅР° май 2020 РіРѕРґР°." + } +} +``` + +## 19. user +message_id: msg-2kabWwJ0a- +created_at: 2026-04-01T18:11:49.844Z +reply_type: n/a + +60 счет остаток РЅР° май 2020 покажи + +## 20. assistant +message_id: msg-snFcqGnS4n +created_at: 2026-04-01T18:11:54.483Z +reply_type: factual +trace_id: address-J2kDdLcuMp + +Адресный срез РїРѕ счету собран (РїРѕ движениям live MCP). +Строк отобрано: 6. +РЎСѓРјРјР° РїРѕ отобранным движениям: 849499. +1. 2020-05-22T10:14:43Z | Списание СЃ расчетного счета 00000000148 РѕС‚ 22.05.2020 10:14:43 | 60.02 / 51 | 142299 +2. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 75367 +3. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 211833 +4. 2020-05-18T12:00:02Z | Списание СЃ расчетного счета 00000000145 РѕС‚ 18.05.2020 12:00:02 | 60.01 / 51 | 187967 + +### technical_debug_payload_json +```json +{ + "trace_id": "address-J2kDdLcuMp", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 6, + "raw_rows_received": 6, + "rows_after_account_scope": 6, + "rows_after_recipe_filter": 6, + "rows_materialized": 6, + "rows_matched": 6, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "bNzBO68Jvxn-Hy", + "llm_decomposition_effective_message": "Показать остаток РїРѕ счету 60 РЅР° май 2020 РіРѕРґР°.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "bNzBO68Jvxn-Hy", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать остаток РїРѕ счету 60 РЅР° май 2020 РіРѕРґР°." + } +} +``` + +## 21. user +message_id: msg-N7mDNtEpCH +created_at: 2026-04-01T18:11:56.801Z +reply_type: n/a + +какой остаток РїРѕ счету 60 РЅР° 2020-05-31 + +## 22. assistant +message_id: msg-ExlgDOpISZ +created_at: 2026-04-01T18:12:02.633Z +reply_type: factual +trace_id: address-8Dy09IZ8th + +Адресный срез РїРѕ счету собран (РїРѕ движениям live MCP). +Строк отобрано: 6. +РЎСѓРјРјР° РїРѕ отобранным движениям: 849499. +1. 2020-05-22T10:14:43Z | Списание СЃ расчетного счета 00000000148 РѕС‚ 22.05.2020 10:14:43 | 60.02 / 51 | 142299 +2. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 75367 +3. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 211833 +4. 2020-05-18T12:00:02Z | Списание СЃ расчетного счета 00000000145 РѕС‚ 18.05.2020 12:00:02 | 60.01 / 51 | 187967 + +### technical_debug_payload_json +```json +{ + "trace_id": "address-8Dy09IZ8th", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 6, + "raw_rows_received": 6, + "rows_after_account_scope": 6, + "rows_after_recipe_filter": 6, + "rows_materialized": 6, + "rows_matched": 6, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "nODwFas1Q07aGg", + "llm_decomposition_effective_message": "Определить остаток РїРѕ счету 60 РЅР° конец периода 2020-05-31.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "nODwFas1Q07aGg", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Определить остаток РїРѕ счету 60 РЅР° конец периода 2020-05-31." + } +} +``` + +## 23. user +message_id: msg-p1GGoKqmlz +created_at: 2026-04-01T18:12:04.378Z +reply_type: n/a + +остаток РїРѕ 60 РЅР° май 2020, РЅРµ Р·Р° весь 2020 + +## 24. assistant +message_id: msg-iyKs0YKyIA +created_at: 2026-04-01T18:12:09.742Z +reply_type: factual +trace_id: address-twQ5OWpTMP + +Адресный срез РїРѕ счету собран (РїРѕ движениям live MCP). +Строк отобрано: 6. +РЎСѓРјРјР° РїРѕ отобранным движениям: 849499. +1. 2020-05-22T10:14:43Z | Списание СЃ расчетного счета 00000000148 РѕС‚ 22.05.2020 10:14:43 | 60.02 / 51 | 142299 +2. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 75367 +3. 2020-05-22T10:12:50Z | Списание СЃ расчетного счета 00000000147 РѕС‚ 22.05.2020 10:12:50 | 60.01 / 51 | 211833 +4. 2020-05-18T12:00:02Z | Списание СЃ расчетного счета 00000000145 РѕС‚ 18.05.2020 12:00:02 | 60.01 / 51 | 187967 + +### technical_debug_payload_json +```json +{ + "trace_id": "address-twQ5OWpTMP", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 6, + "raw_rows_received": 6, + "rows_after_account_scope": 6, + "rows_after_recipe_filter": 6, + "rows_materialized": 6, + "rows_matched": 6, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "jloHJk3d_riuLU", + "llm_decomposition_effective_message": "Остаток РїРѕ счету 60 РЅР° конец мая 2020 РіРѕРґР°, РЅРѕ РЅРµ Р·Р° весь 2020 РіРѕРґ.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "jloHJk3d_riuLU", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Остаток РїРѕ счету 60 РЅР° конец мая 2020 РіРѕРґР°, РЅРѕ РЅРµ Р·Р° весь 2020 РіРѕРґ." + } +} +``` + +## 25. user +message_id: msg-m28Vw-pZlQ +created_at: 2026-04-01T18:12:13.339Z +reply_type: n/a + +покаж РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РґРѕРєРё Р·Р° 2020 + +## 26. assistant +message_id: msg-dBgat04dml +created_at: 2026-04-01T18:12:20.115Z +reply_type: partial_coverage +trace_id: address-AwLlNqwhd3 + +Для точного адресного РїРѕРёСЃРєР° РЅРµ хватает обязательного СЏРєРѕСЂСЏ. +Причина: СЏРєРѕСЂСЊ контрагента/РґРѕРіРѕРІРѕСЂР° РЅРµ найден РІ материализованных live-строках. +Что РЅСѓР¶РЅРѕ уточнить: уточните контрагента точным именем или добавьте ИНН/РґРѕРіРѕРІРѕСЂ. + +### technical_debug_payload_json +```json +{ + "trace_id": "address-AwLlNqwhd3", "prompt_version": "address_query_runtime_v1", "schema_version": "address_query_runtime_v1", "fallback_type": "partial", @@ -715,9 +1645,654 @@ trace_id: address-UkUDVPyDcS "route_subject_match": true, "missing_requirements": [], "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "bank_ops_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "реализации", + "contract": "1-ПМ/2020", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "реализации", + "anchor_value_resolved": "реализации", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "missing_anchor", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "rXpmku7B3WpE16", + "llm_decomposition_effective_message": "Показать документы реализации Рё оплаты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° период 2020 РіРѕРґР°.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "rXpmku7B3WpE16", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы реализации Рё оплаты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° период 2020 РіРѕРґР°." + } +} +``` + +## 27. user +message_id: msg-10PWV7fBg8 +created_at: 2026-04-01T18:12:22.865Z +reply_type: n/a + +какие документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° РІСЃРµ время + +## 28. assistant +message_id: msg-fdXYmtz_KG +created_at: 2026-04-01T18:12:28.292Z +reply_type: partial_coverage +trace_id: address-in9HjHHZQ8 + +Для точного адресного РїРѕРёСЃРєР° РЅРµ хватает обязательного СЏРєРѕСЂСЏ. +Причина: СЏРєРѕСЂСЊ контрагента/РґРѕРіРѕРІРѕСЂР° РЅРµ найден РІ материализованных live-строках. +Что РЅСѓР¶РЅРѕ уточнить: уточните контрагента точным именем или добавьте ИНН/РґРѕРіРѕРІРѕСЂ. + +### technical_debug_payload_json +```json +{ + "trace_id": "address-in9HjHHZQ8", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "СЃРїРёСЃРѕРє", + "contract": "1-ПМ/2020" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "СЃРїРёСЃРѕРє", + "anchor_value_resolved": "СЃРїРёСЃРѕРє", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 124, + "rows_after_recipe_filter": 0, + "rows_materialized": 124, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "missing_anchor", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "rMJuXi00N7b75p", + "llm_decomposition_effective_message": "Получить СЃРїРёСЃРѕРє документов РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° весь период.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "rMJuXi00N7b75p", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Получить СЃРїРёСЃРѕРє документов РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° весь период." + } +} +``` + +## 29. user +message_id: msg-9jn1yhqi8v +created_at: 2026-04-01T18:12:30.547Z +reply_type: n/a + +есть ли долг РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 + +## 30. assistant +message_id: msg-JI9-AOQ5Hw +created_at: 2026-04-01T18:12:37.248Z +reply_type: partial_coverage +trace_id: address-ZslqLl6ocP + +Для точного адресного РїРѕРёСЃРєР° РЅРµ хватает обязательного СЏРєРѕСЂСЏ. +Причина: СЏРєРѕСЂСЊ контрагента/РґРѕРіРѕРІРѕСЂР° РЅРµ найден РІ материализованных live-строках. +Что РЅСѓР¶РЅРѕ уточнить: уточните контрагента точным именем или добавьте ИНН/РґРѕРіРѕРІРѕСЂ. + +### technical_debug_payload_json +```json +{ + "trace_id": "address-ZslqLl6ocP", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "verify_signal_detected", + "open_contract_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "VERIFY_FACTUAL", + "query_shape_confidence": "medium", + "detected_intent": "list_open_contracts", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "1-ПМ/2020 РЅР° дату 2020-07-31", + "period_from": "2020-07-01", + "period_to": "2020-07-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_contracts_candidates_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "1-ПМ/2020 РЅР° дату 2020-07-31", + "anchor_value_resolved": "1-ПМ/2020 РЅР° дату 2020-07-31", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "missing_anchor", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "pGUc5lWNAPubym", + "llm_decomposition_effective_message": "Проверить наличие задолженности РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° дату 2020-07-31.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "pGUc5lWNAPubym", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Проверить наличие задолженности РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° дату 2020-07-31." + } +} +``` + +## 31. user +message_id: msg-YsHahh39hh +created_at: 2026-04-01T18:12:38.728Z +reply_type: n/a + +какие хвосты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° дату 31.07.2020 + +## 32. assistant +message_id: msg-fRl7UBdYRZ +created_at: 2026-04-01T18:12:45.377Z +reply_type: partial_coverage +trace_id: address-zqGb7BhNxb + +Для точного адресного РїРѕРёСЃРєР° РЅРµ хватает обязательного СЏРєРѕСЂСЏ. +Причина: СЏРєРѕСЂСЊ контрагента/РґРѕРіРѕРІРѕСЂР° РЅРµ найден РІ материализованных live-строках. +Что РЅСѓР¶РЅРѕ уточнить: уточните контрагента точным именем или добавьте ИНН/РґРѕРіРѕРІРѕСЂ. + +### technical_debug_payload_json +```json +{ + "trace_id": "address-zqGb7BhNxb", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", "address_entity_detected", "object_signal_detected", - "account_balance_signal_detected" + "open_items_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "OBJECT_LOOKUP", + "query_shape_confidence": "medium", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "1-ПМ/2020 РЅР° дату 31", + "period_from": "2020-07-01", + "period_to": "2020-07-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "1-ПМ/2020 РЅР° дату 31", + "anchor_value_resolved": "1-ПМ/2020 РЅР° дату 31", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "missing_anchor", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "9pV-WK3b5EIuDB", + "llm_decomposition_effective_message": "Показать хвосты (РЅРµ сходящиеся записи) для РґРѕРіРѕРІРѕСЂР° 1-ПМ/2020 РЅР° дату 31.07.2020.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "9pV-WK3b5EIuDB", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать хвосты (РЅРµ сходящиеся записи) для РґРѕРіРѕРІРѕСЂР° 1-ПМ/2020 РЅР° дату 31.07.2020." + } +} +``` + +## 33. user +message_id: msg-hAj09doz2W +created_at: 2026-04-01T18:12:47.360Z +reply_type: n/a + +какие платежи были РїРѕ СЃРІРє РІ 2020 + +## 34. assistant +message_id: msg-PKxa-pu9I_ +created_at: 2026-04-01T18:12:53.490Z +reply_type: factual +trace_id: address-BDEkvEuPsP + +Собран СЃРїРёСЃРѕРє банковских операций РїРѕ контрагенту (live address lane). +Строк отобрано: 3. +1. 2020-12-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000044 РѕС‚ 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа РЎР’Рљ +2. 2020-12-16T16:20:53Z | Поступление РЅР° расчетный счет 00000000043 РѕС‚ 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа РЎР’Рљ +3. 2020-12-14T12:00:00Z | Поступление РЅР° расчетный счет 00000000042 РѕС‚ 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа РЎР’Рљ + +### technical_debug_payload_json +```json +{ + "trace_id": "address-BDEkvEuPsP", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "shape_not_detected", + "bank_ops_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "РЎР’Рљ", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 3, + "rows_materialized": 5, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "MeM1kENv4q-7yb", + "llm_decomposition_effective_message": "Какие оплаты были РїРѕ РЎР’Рљ РІ 2020 РіРѕРґСѓ?", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "MeM1kENv4q-7yb", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Какие оплаты были РїРѕ РЎР’Рљ РІ 2020 РіРѕРґСѓ?" + } +} +``` + +## 35. user +message_id: msg-YyadSJmgKI +created_at: 2026-04-01T18:12:54.274Z +reply_type: n/a + +были ли поступления РѕС‚ СЃРІРє Р·Р° июль 2020 + +## 36. assistant +message_id: msg-VNzpJpKK_I +created_at: 2026-04-01T18:12:59.580Z +reply_type: factual +trace_id: address-zqFDJdF9n5 + +Собран СЃРїРёСЃРѕРє банковских операций РїРѕ контрагенту (live address lane). +Строк отобрано: 2. +1. 2020-07-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000029 РѕС‚ 30.07.2020 12:00:00 | 0 / 0 | 20000 | аналитика: Группа РЎР’Рљ +2. 2020-07-27T12:00:00Z | Поступление РЅР° расчетный счет 00000000028 РѕС‚ 27.07.2020 12:00:00 | 0 / 0 | 40860 | аналитика: Группа РЎР’Рљ + +### technical_debug_payload_json +```json +{ + "trace_id": "address-zqFDJdF9n5", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "verify_signal_detected", + "bank_ops_by_counterparty_signal_detected" ], "why_included_summary": [], "selection_reason_summary": [] @@ -725,48 +2300,176 @@ trace_id: address-UkUDVPyDcS "dropped_intent_segments": [], "detected_mode": "address_query", "detected_mode_confidence": "medium", - "query_shape": "OBJECT_LOOKUP", + "query_shape": "VERIFY_FACTUAL", "query_shape_confidence": "medium", - "detected_intent": "account_balance_snapshot", - "detected_intent_confidence": "high", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "РЎР’Рљ", + "period_from": "2020-07-01", + "period_to": "2020-07-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 19, + "raw_rows_received": 19, + "rows_after_account_scope": 3, + "rows_after_recipe_filter": 2, + "rows_materialized": 3, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "6uHBs1zrmKH2EP", + "llm_decomposition_effective_message": "Проверить поступления РѕС‚ контрагента РЎР’Рљ Р·Р° период июль 2020.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "6uHBs1zrmKH2EP", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Проверить поступления РѕС‚ контрагента РЎР’Рљ Р·Р° период июль 2020." + } +} +``` + +## 37. user +message_id: msg-0gkBYaOos3 +created_at: 2026-04-01T18:13:01.636Z +reply_type: n/a + +покажи списания СЃ расчетного счета РїРѕ СЃРІРє Р·Р° 2020 + +## 38. assistant +message_id: msg-QadkD7JxPX +created_at: 2026-04-01T18:13:07.714Z +reply_type: factual +trace_id: address-D8oRmY8-o9 + +Собран СЃРїРёСЃРѕРє банковских операций РїРѕ контрагенту (live address lane). +Строк отобрано: 3. +1. 2020-12-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000044 РѕС‚ 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа РЎР’Рљ +2. 2020-12-16T16:20:53Z | Поступление РЅР° расчетный счет 00000000043 РѕС‚ 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа РЎР’Рљ +3. 2020-12-14T12:00:00Z | Поступление РЅР° расчетный счет 00000000042 РѕС‚ 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа РЎР’Рљ + +### technical_debug_payload_json +```json +{ + "trace_id": "address-D8oRmY8-o9", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "shape_not_detected", + "bank_ops_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "medium", "extracted_filters": { "sort": "period_desc", "limit": 20, "account": "51", - "counterparty": "СВК", + "counterparty": "РЎР’Рљ", "period_from": "2020-01-01", - "period_to": "2020-12-31", - "as_of_date": "2020-12-31" + "period_to": "2020-12-31" }, "missing_required_filters": [], - "selected_recipe": "address_movements_account_snapshot_v1", - "mcp_call_status_legacy": "materialized_but_not_matched", - "account_scope_mode": "strict", + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", "account_scope_fallback_applied": false, - "anchor_type": "account", - "anchor_value_raw": "51", - "anchor_value_resolved": "51", - "resolver_confidence": "high", + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", "ambiguity_count": 0, - "match_failure_stage": "materialized_but_not_anchor_matched", - "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", - "mcp_call_status": "materialized_but_not_anchor_matched", - "rows_fetched": 200, - "raw_rows_received": 200, - "rows_after_account_scope": 200, - "rows_after_recipe_filter": 0, - "rows_materialized": 200, - "rows_matched": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 3, + "rows_materialized": 5, + "rows_matched": 3, "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", "Period", "Registrator", - "AccountDt", - "AccountKt", "Amount" ], "materialization_drop_reason": "none", @@ -779,25 +2482,688 @@ trace_id: address-UkUDVPyDcS "analytics" ], "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "account_scope_drop_reason": "not_applicable", "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": "missing_anchor", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "l-J3V7H0SAmc1Y", + "llm_decomposition_effective_message": "Показать списания СЃРѕ счета 51 РїРѕ РЎР’Рљ РІ 2020 РіРѕРґСѓ.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "l-J3V7H0SAmc1Y", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать списания СЃРѕ счета 51 РїРѕ РЎР’Рљ РІ 2020 РіРѕРґСѓ." + } +} +``` + +## 39. user +message_id: msg-wVg77J7Kr9 +created_at: 2026-04-01T18:13:09.862Z +reply_type: n/a + +СЃРІРє Р·Р° 2020 покаж РІСЃРµ поступления + +## 40. assistant +message_id: msg-X6fB7FHMiC +created_at: 2026-04-01T18:13:15.153Z +reply_type: partial_coverage +trace_id: address-MfSQlm9bdB + +Этот запрос РЅРµ РїРѕРґС…РѕРґРёС‚ РїРѕРґ address_query V1. +Причина: intent РїРѕРєР° РЅРµ поддержан РІ address V1. +Что РЅСѓР¶РЅРѕ уточнить: переформулируйте РІРѕРїСЂРѕСЃ как адресный lookup РїРѕ счету/контрагенту/РґРѕРіРѕРІРѕСЂСѓ. + +### technical_debug_payload_json +```json +{ + "trace_id": "address-MfSQlm9bdB", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "intent_not_supported_in_v1" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "unknown", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": null, + "mcp_call_status_legacy": "skipped", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "unknown", + "anchor_value_raw": null, + "anchor_value_resolved": null, + "resolver_confidence": "low", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "skipped", + "rows_fetched": 0, + "raw_rows_received": 0, + "rows_after_account_scope": 0, + "rows_after_recipe_filter": 0, + "rows_materialized": 0, + "rows_matched": 0, + "raw_row_keys_sample": [], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "DEEP_ONLY", + "limited_reason_category": "unsupported", "response_type": "LIMITED_WITH_REASON", "execution_lane": "address_query", "llm_decomposition_applied": true, "llm_decomposition_attempted": true, "llm_provider_used": "local", - "llm_decomposition_trace_id": "0cLF7I15mPRopo", - "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 62) для контрагента СВК за период 2020 год.", - "llm_decomposition_reason": "raw_fragment_applied", + "llm_decomposition_trace_id": "c-8Kz0d8zNLsWL", + "llm_decomposition_effective_message": "РЎР’Рљ Р·Р° 2020 РіРѕРґ, показать РІСЃРµ поступления", + "llm_decomposition_reason": "normalized_fragment_applied", "answer_structure_v11": null, "investigation_state_snapshot": null, "normalized": null, "normalizer_output": { - "trace_id": "0cLF7I15mPRopo", + "trace_id": "c-8Kz0d8zNLsWL", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции (счета 51, 62) для контрагента СВК за период 2020 год." + "effective_message": "РЎР’Рљ Р·Р° 2020 РіРѕРґ, показать РІСЃРµ поступления" } } ``` + +## 41. user +message_id: msg-duAZADZemo +created_at: 2026-04-01T18:13:17.866Z +reply_type: n/a + +покажи документы РїРѕ СЃРІРє Р·Р° 2020 + +## 42. assistant +message_id: msg-jhu51wE9k0 +created_at: 2026-04-01T18:13:22.966Z +reply_type: factual +trace_id: address-XdlYQBPRu0 + +Собран СЃРїРёСЃРѕРє документов РїРѕ контрагенту (live address lane). +Строк отобрано: 3. +1. 2020-12-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000044 РѕС‚ 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа РЎР’Рљ +2. 2020-12-16T16:20:53Z | Поступление РЅР° расчетный счет 00000000043 РѕС‚ 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа РЎР’Рљ +3. 2020-12-14T12:00:00Z | Поступление РЅР° расчетный счет 00000000042 РѕС‚ 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа РЎР’Рљ + +### technical_debug_payload_json +```json +{ + "trace_id": "address-XdlYQBPRu0", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "РЎР’Рљ", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 3, + "rows_materialized": 5, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "aG6yLo3bqk2K3Z", + "llm_decomposition_effective_message": "Показать документы РїРѕ РЎР’Рљ Р·Р° 2020 РіРѕРґ.", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "aG6yLo3bqk2K3Z", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы РїРѕ РЎР’Рљ Р·Р° 2020 РіРѕРґ." + } +} +``` + +## 43. user +message_id: msg-oXD35WmrlY +created_at: 2026-04-01T18:13:25.459Z +reply_type: n/a + +Р° теперь только Р·Р° май 2020 + +## 44. assistant +message_id: msg-5NUlHEAe6L +created_at: 2026-04-01T18:13:27.281Z +reply_type: factual +trace_id: address-KhRwtkP2c1 + +РџРѕ РѕРєРЅСѓ 2020-05-01..2020-05-31 строк РЅРµ найдено; показаны ближайшие доступные данные 2020-07-27..2021-11-10. +Собран СЃРїРёСЃРѕРє документов РїРѕ контрагенту (live address lane). +Строк отобрано: 26. +1. 2021-11-10T12:00:07Z | Поступление РЅР° расчетный счет 00000000013 РѕС‚ 10.11.2021 12:00:07 | 0 / 0 | 20000 | аналитика: Группа РЎР’Рљ +2. 2021-09-29T12:00:03Z | Поступление РЅР° расчетный счет 00000000012 РѕС‚ 29.09.2021 12:00:03 | 0 / 0 | 50000 | аналитика: Группа РЎР’Рљ +3. 2021-08-31T12:00:04Z | Поступление РЅР° расчетный счет 00000000011 РѕС‚ 31.08.2021 12:00:04 | 0 / 0 | 120500 | аналитика: Группа РЎР’Рљ +4. 2021-06-22T12:00:00Z | Поступление РЅР° расчетный счет 00000000010 РѕС‚ 22.06.2021 12:00:00 | 0 / 0 | 498630 | аналитика: Группа РЎР’Рљ +5. 2021-06-09T12:00:05Z | Поступление РЅР° расчетный счет 00000000009 РѕС‚ 09.06.2021 12:00:05 | 0 / 0 | 418960 | аналитика: Группа РЎР’Рљ +6. 2021-04-28T12:00:08Z | Поступление РЅР° расчетный счет 00000000008 РѕС‚ 28.04.2021 12:00:08 | 0 / 0 | 564300 | аналитика: Группа РЎР’Рљ +7. 2021-04-22T12:00:00Z | Поступление РЅР° расчетный счет 00000000007 РѕС‚ 22.04.2021 12:00:00 | 0 / 0 | 982420 | аналитика: Группа РЎР’Рљ +8. 2021-04-13T12:00:11Z | Поступление РЅР° расчетный счет 00000000006 РѕС‚ 13.04.2021 12:00:11 | 0 / 0 | 1882400 | аналитика: Группа РЎР’Рљ +9. 2021-03-25T12:00:02Z | Поступление РЅР° расчетный счет 00000000005 РѕС‚ 25.03.2021 12:00:02 | 0 / 0 | 644315 | аналитика: Группа РЎР’Рљ +10. 2021-03-24T12:00:03Z | Поступление РЅР° расчетный счет 00000000004 РѕС‚ 24.03.2021 12:00:03 | 0 / 0 | 1219990 | аналитика: Группа РЎР’Рљ +11. 2021-03-18T12:00:00Z | Поступление РЅР° расчетный счет 00000000003 РѕС‚ 18.03.2021 12:00:00 | 0 / 0 | 1425310 | аналитика: Группа РЎР’Рљ +12. 2021-03-12T12:00:03Z | Поступление РЅР° расчетный счет 00000000002 РѕС‚ 12.03.2021 12:00:03 | 0 / 0 | 214600 | аналитика: Группа РЎР’Рљ +13. 2021-02-19T12:00:01Z | Поступление РЅР° расчетный счет 00000000001 РѕС‚ 19.02.2021 12:00:01 | 0 / 0 | 518600 | аналитика: Группа РЎР’Рљ +14. 2020-12-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000044 РѕС‚ 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа РЎР’Рљ +15. 2020-12-16T16:20:53Z | Поступление РЅР° расчетный счет 00000000043 РѕС‚ 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа РЎР’Рљ +16. 2020-12-14T12:00:00Z | Поступление РЅР° расчетный счет 00000000042 РѕС‚ 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа РЎР’Рљ +17. 2020-11-30T12:00:07Z | Поступление РЅР° расчетный счет 00000000041 РѕС‚ 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа РЎР’Рљ +18. 2020-11-19T12:00:04Z | Поступление РЅР° расчетный счет 00000000039 РѕС‚ 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа РЎР’Рљ +19. 2020-11-18T12:00:05Z | Поступление РЅР° расчетный счет 00000000038 РѕС‚ 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа РЎР’Рљ +20. 2020-11-18T12:00:04Z | Поступление РЅР° расчетный счет 00000000037 РѕС‚ 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа РЎР’Рљ +21. 2020-11-13T12:00:03Z | Поступление РЅР° расчетный счет 00000000036 РѕС‚ 13.11.2020 12:00:03 | 0 / 0 | 313600 | аналитика: Группа РЎР’Рљ +22. 2020-11-10T15:39:13Z | Поступление РЅР° расчетный счет 00000000035 РѕС‚ 10.11.2020 15:39:13 | 0 / 0 | 328300 | аналитика: Группа РЎР’Рљ +23. 2020-10-26T12:00:00Z | Поступление РЅР° расчетный счет 00000000034 РѕС‚ 26.10.2020 12:00:00 | 0 / 0 | 175000 | аналитика: Группа РЎР’Рљ +24. 2020-08-20T12:00:06Z | Поступление РЅР° расчетный счет 00000000032 РѕС‚ 20.08.2020 12:00:06 | 0 / 0 | 3126005 | аналитика: Группа РЎР’Рљ +25. 2020-07-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000029 РѕС‚ 30.07.2020 12:00:00 | 0 / 0 | 20000 | аналитика: Группа РЎР’Рљ +26. 2020-07-27T12:00:00Z | Поступление РЅР° расчетный счет 00000000028 РѕС‚ 27.07.2020 12:00:00 | 0 / 0 | 40860 | аналитика: Группа РЎР’Рљ + +### technical_debug_payload_json +```json +{ + "trace_id": "address-KhRwtkP2c1", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "period_window_auto_broadened_to_available_data" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "counterparty": "РЎР’Рљ" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 124, + "rows_after_recipe_filter": 26, + "rows_materialized": 124, + "rows_matched": 26, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "Р° теперь только Р·Р° май 2020", + "llm_decomposition_reason": "not_address_like", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null +} +``` + +## 45. user +message_id: msg-0O2322hPYV +created_at: 2026-04-01T18:13:31.257Z +reply_type: n/a + +Р° РїРѕ счету 60.01 РЅР° ту Р¶Рµ дату + +## 46. assistant +message_id: msg-5wQQ78XlVm +created_at: 2026-04-01T18:13:37.363Z +reply_type: factual +trace_id: address-tcv7YeM7ZZ + +Адресный срез РїРѕ счету собран (РїРѕ движениям live MCP). +Строк отобрано: 200. +РЎСѓРјРјР° РїРѕ отобранным движениям: 31878451.5. +1. 2022-04-18T12:00:00Z | Поступление товаров Рё услуг 00000000007 РѕС‚ 18.04.2022 12:00:00 | 97.21 / 60.01 | 14790 +2. 2022-04-18T12:00:00Z | Поступление товаров Рё услуг 00000000007 РѕС‚ 18.04.2022 12:00:00 | 60.01 / 60.02 | 14790 +3. 2022-01-20T12:00:01Z | Списание СЃ расчетного счета 00000000003 РѕС‚ 20.01.2022 12:00:01 | 60.01 / 51 | 1705109.5 +4. 2021-05-17T12:00:00Z | Поступление товаров Рё услуг 00000000009 РѕС‚ 17.05.2021 12:00:00 | 19.04 / 60.01 | 12000 + +### technical_debug_payload_json +```json +{ + "trace_id": "address-tcv7YeM7ZZ", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60.01", + "as_of_date": "2026-04-01" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60.01", + "anchor_value_resolved": "60.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 200, + "raw_rows_received": 200, + "rows_after_account_scope": 200, + "rows_after_recipe_filter": 200, + "rows_materialized": 200, + "rows_matched": 200, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60.01", + "account_token_normalized": "60.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "yz8CubzkEAVtBU", + "llm_decomposition_effective_message": "РїРѕ счету 60.01 РЅР° ту Р¶Рµ дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "yz8CubzkEAVtBU", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "РїРѕ счету 60.01 РЅР° ту Р¶Рµ дату" + } +} +``` + +## 47. user +message_id: msg-eethW3zYW1 +created_at: 2026-04-01T18:13:38.537Z +reply_type: n/a + +бля епт покажи РґРѕРєРё РїРѕ СЃРІРє Р·Р° 20Р№ + +## 48. assistant +message_id: msg-NZvEvSYgcN +created_at: 2026-04-01T18:13:44.390Z +reply_type: factual +trace_id: address--v-Mtq3FAh + +Собран СЃРїРёСЃРѕРє документов РїРѕ контрагенту (live address lane). +Строк отобрано: 3. +1. 2020-12-30T12:00:00Z | Поступление РЅР° расчетный счет 00000000044 РѕС‚ 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа РЎР’Рљ +2. 2020-12-16T16:20:53Z | Поступление РЅР° расчетный счет 00000000043 РѕС‚ 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа РЎР’Рљ +3. 2020-12-14T12:00:00Z | Поступление РЅР° расчетный счет 00000000042 РѕС‚ 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа РЎР’Рљ + +### technical_debug_payload_json +```json +{ + "trace_id": "address--v-Mtq3FAh", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "РЎР’Рљ", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "РЎР’Рљ", + "anchor_value_resolved": "Группа РЎР’Рљ", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 3, + "rows_materialized": 5, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "РЎСѓРјРјР°", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "qB2Y8qO8-uq1L9", + "llm_decomposition_effective_message": "покажи документы РїРѕ РЎР’Рљ Р·Р° 20-Р№ период", + "llm_decomposition_reason": "normalized_fragment_applied", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "qB2Y8qO8-uq1L9", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "покажи документы РїРѕ РЎР’Рљ Р·Р° 20-Р№ период" + } +} +``` + + diff --git a/docs/ADDRESS/address_query/execution_lineup_v1_2026-03-29.md b/docs/ADDRESS/address_query/execution_lineup_v1_2026-03-29.md index 080a406..dbc6355 100644 --- a/docs/ADDRESS/address_query/execution_lineup_v1_2026-03-29.md +++ b/docs/ADDRESS/address_query/execution_lineup_v1_2026-03-29.md @@ -35,6 +35,21 @@ - `filter_extraction_audit.json` - `resolver_ambiguity_cases.md` +## Subwave M1.5 — L0 Hybrid Router Stabilization + +Цель: стабилизировать входную интерпретацию на шумном вводе без раздувания словарей. + +- LLM-first decompose в строгий JSON-контракт; +- deterministic fallback (корни/подстроки, парсинг дат и счетов, шумоочистка); +- режим `shadow` (без влияния на финальный ответ) и сбор trace; +- переход в `soft-enable` только после прохождения регрессии. + +Артефакты: + +- `llm_router_shadow_report.json` +- `fallback_trigger_audit.md` +- `noisy_input_regression_results.md` + ## Subwave M2 — Recipe + MCP Execution (Live-first) Цель: связать intents с whitelist recipes и реальным MCP execution. @@ -90,4 +105,5 @@ Acceptance gates: ## Что делаем сразу - Сегодня стартуем с `M0` и `M1` (контракты + классификация/фильтры). -- После этого сразу поднимаем `M2` для 2 первых intents (`payables/receivables`). +- После этого закрываем `M1.5` (shadow L0 router + регрессия на шумных вопросах). +- И только затем поднимаем `M2` для 2 первых intents (`payables/receivables`). diff --git a/docs/ADDRESS/address_query/question_bank_v1.md b/docs/ADDRESS/address_query/question_bank_v1.md index 1798dc6..5cab29b 100644 --- a/docs/ADDRESS/address_query/question_bank_v1.md +++ b/docs/ADDRESS/address_query/question_bank_v1.md @@ -28,11 +28,11 @@ ## C. Договоры - какие договоры не закрыты -- что по договору 15/24 +- что по договору 1-ПМ/2020 - есть ли долг по договору с Альфой - какие документы связаны с этим договором - покажи незакрытые договоры по контрагенту -- какие хвосты по договору №15/24 на дату +- какие хвосты по договору 1-ПМ/2020 на дату - есть ли открытые позиции по договору ## D. Документы @@ -79,7 +79,27 @@ - проверь, есть ли открытые позиции по договору - проверь, есть ли документы по контрагенту за июль 2020 +## I. Robustness (шум, опечатки, сленг) + +- свк доки за 20год покеж +- свк 20 год - покажи доки плс +- что по свк за 2020 год выведи все доки плиз что есть +- какие доки есть по свк за 2021 +- какие документы по контрагенту свк за все время +- покажи сальдо по 60.01 на 31.07.20 +- остаток 60 на 2020.05 +- какой остаток по счету 60 на 2020 май +- 60 счет остаток на май 2020 покажи +- свк за 2020 покаж все поступления +- свк июль 2020 какие доки есть +- доки по свк с 01.07.2020 по 31.07.2020 +- покаж по договору 1-ПМ/2020 доки за 2020 +- че висит по 60 счету на 31 07 2020 +- бля епт покажи доки по свк за 20й + ## Правило маршрутизации - если вопрос = factual lookup -> `address_query` - если вопрос = why/prove/causal diagnosis -> `deep_analysis` + + diff --git a/docs/ADDRESS/address_query/runtime_integration_plan.md b/docs/ADDRESS/address_query/runtime_integration_plan.md index 5376223..6cb94b6 100644 --- a/docs/ADDRESS/address_query/runtime_integration_plan.md +++ b/docs/ADDRESS/address_query/runtime_integration_plan.md @@ -41,15 +41,35 @@ Новый high-level flow: 1. Входящий вопрос. -2. Mode-classifier: `address_query` | `deep_analysis` | `unsupported`. -3. Если `address_query`: +2. L0 hybrid router: LLM decompose + deterministic fallback. +3. Mode-classifier: `address_query` | `deep_analysis` | `unsupported`. +4. Если `address_query`: - resolve `address_intent`; - extract+validate filters; - select recipe; - execute MCP (live-first); - normalize result schema; - return factual answer. -4. Если не `address_query`: текущий deep path без изменений. +5. Если не `address_query`: текущий deep path без изменений. + +## 3.1) L0 Hybrid Router (stabilization layer) + +Назначение: убрать хрупкость на шумном пользовательском вводе (опечатки, сленг, лишние слова), не раздувая словари. + +Порядок работы: + +1. Сначала запускаем LLM decompose в строгий JSON-контракт. +2. Если LLM дал пустой/невалидный/неиспользуемый фрагмент, включается короткий deterministic fallback: +- триггеры по корням/подстрокам (не giant словарь словоформ); +- парсинг дат/периодов/счетов; +- шумоочистка (служебные слова, междометия, мусорные хвосты). +3. Если и fallback не дал валидный результат, возвращаем `LIMITED_WITH_REASON`, без выдумывания фактов. + +Ограничения: + +- без company-specific словарей в runtime; +- без генерации SQL/1C-query в свободной форме; +- только интерпретация вопроса + передача в whitelist recipes. ## 4) Встраивание по слоям @@ -58,6 +78,7 @@ Изменения: - добавить `question_mode` и `address_intent` в normalizer contract; +- добавить L0 router contract (decompose output + fallback reason); - в `routeHintAdapter` добавить address-query rule set до deep route discipline. Рекомендуемые файлы: @@ -131,6 +152,11 @@ - `rows_fetched` - `rows_matched` - `response_type` +- `llm_decomposition_attempted` +- `llm_decomposition_applied` +- `llm_decomposition_reason` +- `fallback_rule_hit` +- `sanitized_user_message` ## 5) Fallback Rules @@ -160,9 +186,20 @@ 1. `M0`: контракты (`question_mode`, `address_intent`, filter schema, recipe schema). 2. `M1`: classifier + resolver + validator (без MCP execution). -3. `M2`: MCP executor + 5 P0 recipe. -4. `M3`: factual composer + debug payload + basic tests. -5. `M4`: live rerun pack в `docs/ADDRESS/runs/...`. +3. `M1.5`: L0 hybrid router (LLM-first + deterministic fallback) в shadow mode. +4. `M2`: MCP executor + 5 P0 recipe. +5. `M3`: factual composer + debug payload + basic tests. +6. `M4`: live rerun pack в `docs/ADDRESS/runs/...`. + +## 7.2) L0 rollout policy + +1. `Shadow`: LLM decompose не влияет на ответ, только trace/audit. +2. `Soft-enable`: LLM decompose влияет на routing только для P0 intents. +3. `Full-enable`: LLM decompose + fallback включены для всего `address_query`. + +Правило безопасности: + +- любой сбой LLM должен откатываться в deterministic fallback, а не в random behavior. ## 7.1) Sprint B priority order (adapted to current reality) @@ -191,3 +228,5 @@ Rationale: - Address intents из P0 стабильно маршрутизируются в MCP/live-first lane. - Factual-ответы по P0 сценариям возвращаются в предсказуемом формате. - `false_factual_rate = 0`. +- Нет silent-degradation: при провале LLM есть explainable fallback reason. +- На шумном вводе нет ложного сдвига anchor (`counterparty`, `account`, `period`). diff --git a/docs/ADDRESS/runs/2026-04-01_Address_1txt_LLM_Recheck/batch_results.json b/docs/ADDRESS/runs/2026-04-01_Address_1txt_LLM_Recheck/batch_results.json new file mode 100644 index 0000000..eee5e5c --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-01_Address_1txt_LLM_Recheck/batch_results.json @@ -0,0 +1,617 @@ +{ + "summary": { + "run_id": "2026-04-01_Address_1txt_LLM_Recheck", + "source_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\1.txt", + "session_id": "asst-batch-1775070253876", + "questions_total": 24, + "reply_type_counts": { + "partial_coverage": 12, + "factual": 11, + "clarification_required": 1 + }, + "llm_attempted_count": 22, + "llm_applied_count": 22, + "llm_reason_counts": { + "normalized_fragment_applied": 22, + "null": 1, + "not_address_like": 1 + }, + "limited_reason_counts": { + "empty_match": 1, + "null": 12, + "missing_anchor": 3, + "unsupported": 8 + }, + "factual_like_count": 11, + "partial_count": 12, + "error_count": 0, + "avg_elapsed_ms": 6858 + }, + "items": [ + { + "idx": 1, + "question": "СЃРІРє РґРѕРєРё Р·Р° 20РіРѕРґ покеж", + "http_ok": true, + "status": 200, + "elapsed_ms": 6384, + "reply_type": "partial_coverage", + "trace_id": "address-UtQdVfe_-A", + "detected_intent": "account_balance_snapshot", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "20", + "period_from": "2023-01-01", + "period_to": "2023-12-31", + "as_of_date": "2023-12-31" + }, + "mcp_call_status": "no_raw_rows", + "limited_reason_category": "empty_match", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.", + "error": null + }, + { + "idx": 2, + "question": "СЃРІРє 20 РіРѕРґ - покажи РґРѕРєРё плс", + "http_ok": true, + "status": 200, + "elapsed_ms": 6153, + "reply_type": "factual", + "trace_id": "address-oDaS9iJcKo", + "detected_intent": "list_documents_by_counterparty", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "свк", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Собран список документов по контрагенту (live address lane).\nСтрок отобрано: 3.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа СВК\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20", + "error": null + }, + { + "idx": 3, + "question": "что РїРѕ СЃРІРє Р·Р° 2020 РіРѕРґ выведи РІСЃРµ РґРѕРєРё плиз что есть", + "http_ok": true, + "status": 200, + "elapsed_ms": 20518, + "reply_type": "clarification_required", + "trace_id": "0TVLQBjJoCBfzy", + "detected_intent": null, + "extracted_filters": null, + "mcp_call_status": null, + "limited_reason_category": null, + "llm_decomposition_attempted": false, + "llm_decomposition_applied": false, + "llm_decomposition_reason": null, + "llm_provider_used": null, + "assistant_reply_preview": "Коротко: Проблема подтверждается частично; для уверенного вывода нужны уточнения. Что сломано:\n- Есть признаки проблемы, но без уточнений по периоду и объекту вывод ненадежен. Почему это похоже на проблему:\n- Сигнал проблемы есть, но механизм подтвержден не полностью. На чем это основано:\n- Опора ча", + "error": null + }, + { + "idx": 4, + "question": "какие документы РїРѕ контрагенту СЃРІРє Р·Р° РІСЃРµ время", + "http_ok": true, + "status": 200, + "elapsed_ms": 6279, + "reply_type": "factual", + "trace_id": "address-rGANrjNA-z", + "detected_intent": "list_documents_by_counterparty", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "свк" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Собран список документов по контрагенту (live address lane).\nСтрок отобрано: 26.\n1. 2021-11-10T12:00:07Z | Поступление на расчетный счет 00000000013 от 10.11.2021 12:00:07 | 0 / 0 | 20000 | аналитика: Группа СВК\n2. 2021-09-29T12:00:03Z | Поступление на расчетный счет 00000000012 от 29.09.2021 12:00:", + "error": null + }, + { + "idx": 5, + "question": "РґРѕРєРё РїРѕ СЃРІРє СЃ 01.07.2020 РїРѕ 31.07.2020", + "http_ok": true, + "status": 200, + "elapsed_ms": 6720, + "reply_type": "factual", + "trace_id": "address-LUCt7rb_A-", + "detected_intent": "list_documents_by_counterparty", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-07-01", + "period_to": "2020-07-31", + "counterparty": "свк" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Собран список документов по контрагенту (live address lane).\nСтрок отобрано: 2.\n1. 2020-07-30T12:00:00Z | Поступление на расчетный счет 00000000029 от 30.07.2020 12:00:00 | 0 / 0 | 20000 | аналитика: Группа СВК\n2. 2020-07-27T12:00:00Z | Поступление на расчетный счет 00000000028 от 27.07.2020 12:00:0", + "error": null + }, + { + "idx": 6, + "question": "СЃРІРє июль 2020 какие РґРѕРєРё есть", + "http_ok": true, + "status": 200, + "elapsed_ms": 7151, + "reply_type": "factual", + "trace_id": "address-G7spbS8NqU", + "detected_intent": "list_documents_by_counterparty", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-01-01", + "period_to": "2020-12-31", + "counterparty": "свк" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Собран список документов по контрагенту (live address lane).\nСтрок отобрано: 3.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа СВК\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20", + "error": null + }, + { + "idx": 7, + "question": "покажи сальдо РїРѕ 60.01 РЅР° 31.07.20", + "http_ok": true, + "status": 200, + "elapsed_ms": 6342, + "reply_type": "factual", + "trace_id": "address-kO9TP1_8NF", + "detected_intent": "account_balance_snapshot", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60.01", + "as_of_date": "2020-07-31" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 200.\nСумма по отобранным движениям: 27938175.\n1. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 13.07.2020 12:00:02 | 41.01 / 60.01 | 74400\n2. 2020-07-13T12:00:02Z | Поступление товаров и услуг 00000000029 от 1", + "error": null + }, + { + "idx": 8, + "question": "остаток 60 РЅР° 2020.05", + "http_ok": true, + "status": 200, + "elapsed_ms": 5857, + "reply_type": "factual", + "trace_id": "address-SHnHpGnqzB", + "detected_intent": "account_balance_snapshot", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 6.\nСумма по отобранным движениям: 849499.\n1. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299\n2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2", + "error": null + }, + { + "idx": 9, + "question": "какой остаток РїРѕ счету 60 РЅР° 2020 май", + "http_ok": true, + "status": 200, + "elapsed_ms": 7189, + "reply_type": "factual", + "trace_id": "address-nICyNWFT0S", + "detected_intent": "account_balance_snapshot", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-01-01", + "period_to": "2020-12-31", + "as_of_date": "2020-12-31" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 138.\nСумма по отобранным движениям: 24061597.5.\n1. 2020-11-26T12:00:03Z | Поступление на расчетный счет 00000000040 от 26.11.2020 12:00:03 | 51 / 60.02 | 900000\n2. 2020-11-26T12:00:03Z | Поступление на расчетный счет 00000000040 ", + "error": null + }, + { + "idx": 10, + "question": "60 счет остаток РЅР° май 2020 покажи", + "http_ok": true, + "status": 200, + "elapsed_ms": 6107, + "reply_type": "factual", + "trace_id": "address-Z1Ax_5iDve", + "detected_intent": "account_balance_snapshot", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-01-01", + "period_to": "2020-12-31", + "as_of_date": "2020-12-31" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 138.\nСумма по отобранным движениям: 24061597.5.\n1. 2020-11-26T12:00:03Z | Поступление на расчетный счет 00000000040 от 26.11.2020 12:00:03 | 51 / 60.02 | 900000\n2. 2020-11-26T12:00:03Z | Поступление на расчетный счет 00000000040 ", + "error": null + }, + { + "idx": 11, + "question": "какой остаток РїРѕ счету 60 РЅР° 2020-05-31", + "http_ok": true, + "status": 200, + "elapsed_ms": 6005, + "reply_type": "factual", + "trace_id": "address-v8rsGxAPk8", + "detected_intent": "account_balance_snapshot", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 6.\nСумма по отобранным движениям: 849499.\n1. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299\n2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2", + "error": null + }, + { + "idx": 12, + "question": "остаток РїРѕ 60 РЅР° май 2020, РЅРµ Р·Р° весь 2020", + "http_ok": true, + "status": 200, + "elapsed_ms": 7292, + "reply_type": "factual", + "trace_id": "address-lSVsG6X5Df", + "detected_intent": "account_balance_snapshot", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-01-01", + "period_to": "2020-12-31", + "as_of_date": "2020-12-31" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 138.\nСумма по отобранным движениям: 24061597.5.\n1. 2020-11-26T12:00:03Z | Поступление на расчетный счет 00000000040 от 26.11.2020 12:00:03 | 51 / 60.02 | 900000\n2. 2020-11-26T12:00:03Z | Поступление на расчетный счет 00000000040 ", + "error": null + }, + { + "idx": 13, + "question": "покаж РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РґРѕРєРё Р·Р° 2020", + "http_ok": true, + "status": 200, + "elapsed_ms": 8256, + "reply_type": "partial_coverage", + "trace_id": "address-flmr5jto7X", + "detected_intent": "list_documents_by_counterparty", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "Объясните", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "missing_anchor", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Для точного адресного поиска не хватает обязательного якоря.\nПричина: якорь контрагента/договора не найден в материализованных live-строках.\nЧто нужно уточнить: уточните контрагента точным именем или добавьте ИНН/договор.", + "error": null + }, + { + "idx": 14, + "question": "какие документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° РІСЃРµ время", + "http_ok": true, + "status": 200, + "elapsed_ms": 7122, + "reply_type": "partial_coverage", + "trace_id": "address-Qo9bATsKBX", + "detected_intent": "list_documents_by_counterparty", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "какие", + "contract": "1-��/2020" + }, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "missing_anchor", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Для точного адресного поиска не хватает обязательного якоря.\nПричина: якорь контрагента/договора не найден в материализованных live-строках.\nЧто нужно уточнить: уточните контрагента точным именем или добавьте ИНН/договор.", + "error": null + }, + { + "idx": 15, + "question": "есть ли долг РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "http_ok": true, + "status": 200, + "elapsed_ms": 8152, + "reply_type": "partial_coverage", + "trace_id": "address-cW17Pxr6W9", + "detected_intent": "list_documents_by_counterparty", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "контракту", + "period_from": "2020-07-01", + "period_to": "2020-07-31" + }, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "missing_anchor", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Для точного адресного поиска не хватает обязательного якоря.\nПричина: якорь контрагента/договора не найден в материализованных live-строках.\nЧто нужно уточнить: уточните контрагента точным именем или добавьте ИНН/договор.", + "error": null + }, + { + "idx": 16, + "question": "какие хвосты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° дату 31.07.2020", + "http_ok": true, + "status": 200, + "elapsed_ms": 6338, + "reply_type": "partial_coverage", + "trace_id": "address-327jT7VHz_", + "detected_intent": "unknown", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-07-01", + "period_to": "2020-07-31" + }, + "mcp_call_status": "skipped", + "limited_reason_category": "unsupported", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.", + "error": null + }, + { + "idx": 17, + "question": "какие платежи были РїРѕ СЃРІРє РІ 2020", + "http_ok": true, + "status": 200, + "elapsed_ms": 5858, + "reply_type": "partial_coverage", + "trace_id": "address-t5LrJK0Hqw", + "detected_intent": "unknown", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "mcp_call_status": "skipped", + "limited_reason_category": "unsupported", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.", + "error": null + }, + { + "idx": 18, + "question": "были ли поступления РѕС‚ СЃРІРє Р·Р° июль 2020", + "http_ok": true, + "status": 200, + "elapsed_ms": 5991, + "reply_type": "partial_coverage", + "trace_id": "address-lzi3Np6sPw", + "detected_intent": "unknown", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "mcp_call_status": "skipped", + "limited_reason_category": "unsupported", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.", + "error": null + }, + { + "idx": 19, + "question": "покажи списания СЃ расчетного счета РїРѕ СЃРІРє Р·Р° 2020", + "http_ok": true, + "status": 200, + "elapsed_ms": 5658, + "reply_type": "partial_coverage", + "trace_id": "address-eUEHz-s3yq", + "detected_intent": "unknown", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "mcp_call_status": "skipped", + "limited_reason_category": "unsupported", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.", + "error": null + }, + { + "idx": 20, + "question": "СЃРІРє Р·Р° 2020 покаж РІСЃРµ поступления", + "http_ok": true, + "status": 200, + "elapsed_ms": 5723, + "reply_type": "partial_coverage", + "trace_id": "address-rwRwljpwaa", + "detected_intent": "unknown", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "mcp_call_status": "skipped", + "limited_reason_category": "unsupported", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.", + "error": null + }, + { + "idx": 21, + "question": "покажи документы РїРѕ СЃРІРє Р·Р° 2020", + "http_ok": true, + "status": 200, + "elapsed_ms": 6380, + "reply_type": "partial_coverage", + "trace_id": "address-SJ9kbgZbNN", + "detected_intent": "unknown", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "mcp_call_status": "skipped", + "limited_reason_category": "unsupported", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.", + "error": null + }, + { + "idx": 22, + "question": "Р° теперь только Р·Р° май 2020", + "http_ok": true, + "status": 200, + "elapsed_ms": 13, + "reply_type": "partial_coverage", + "trace_id": "address-7V_8eBVTvl", + "detected_intent": "unknown", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "mcp_call_status": "skipped", + "limited_reason_category": "unsupported", + "llm_decomposition_attempted": false, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "llm_provider_used": "local", + "assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.", + "error": null + }, + { + "idx": 23, + "question": "Р° РїРѕ счету 60.01 РЅР° ту Р¶Рµ дату", + "http_ok": true, + "status": 200, + "elapsed_ms": 6675, + "reply_type": "factual", + "trace_id": "address-xrmQmT7kOg", + "detected_intent": "account_balance_snapshot", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60.01", + "as_of_date": "2026-04-01" + }, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 200.\nСумма по отобранным движениям: 31878451.5.\n1. 2022-04-18T12:00:00Z | Поступление товаров и услуг 00000000007 от 18.04.2022 12:00:00 | 97.21 / 60.01 | 14790\n2. 2022-04-18T12:00:00Z | Поступление товаров и услуг 00000000007 от", + "error": null + }, + { + "idx": 24, + "question": "бля епт покажи РґРѕРєРё РїРѕ СЃРІРє Р·Р° 20Р№", + "http_ok": true, + "status": 200, + "elapsed_ms": 6426, + "reply_type": "partial_coverage", + "trace_id": "address-ISmwa9nejq", + "detected_intent": "unknown", + "extracted_filters": { + "sort": "period_desc", + "limit": 20 + }, + "mcp_call_status": "skipped", + "limited_reason_category": "unsupported", + "llm_decomposition_attempted": true, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "llm_provider_used": "local", + "assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.", + "error": null + } + ] +} \ No newline at end of file diff --git a/docs/ADDRESS/runs/2026-04-01_Address_1txt_LLM_Recheck/run_summary.json b/docs/ADDRESS/runs/2026-04-01_Address_1txt_LLM_Recheck/run_summary.json new file mode 100644 index 0000000..f21c42f --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-01_Address_1txt_LLM_Recheck/run_summary.json @@ -0,0 +1,28 @@ +{ + "run_id": "2026-04-01_Address_1txt_LLM_Recheck", + "source_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\1.txt", + "session_id": "asst-batch-1775070253876", + "questions_total": 24, + "reply_type_counts": { + "partial_coverage": 12, + "factual": 11, + "clarification_required": 1 + }, + "llm_attempted_count": 22, + "llm_applied_count": 22, + "llm_reason_counts": { + "normalized_fragment_applied": 22, + "null": 1, + "not_address_like": 1 + }, + "limited_reason_counts": { + "empty_match": 1, + "null": 12, + "missing_anchor": 3, + "unsupported": 8 + }, + "factual_like_count": 11, + "partial_count": 12, + "error_count": 0, + "avg_elapsed_ms": 6858 +} \ No newline at end of file diff --git a/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/README.md b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/README.md new file mode 100644 index 0000000..9503204 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/README.md @@ -0,0 +1,53 @@ +# Address Query Runtime V1 - M2.3f LLM Decompose Coercion Layer + +Date: 2026-04-01 + +## Goal + +Stabilize local-LLM pre-decomposition without adding brittle dictionaries: + +- accept semantically useful but schema-drifted local model JSON; +- coerce it into strict `normalized_query_v2_0_2` contract; +- keep deterministic route policy and guardrails unchanged. + +## Implemented + +1. Added coercion layer in normalizer pipeline before policy/validation: +- `coerceNormalizedCandidateV2(...)` +- `coerceFragmentV2(...)` +- scalar coercion: booleans, numeric confidence, string arrays, IDs. + +2. Field-level schema drift recovery: +- `fragment_id: 1` -> `F1`; +- `domain_relevance: true/false` -> `in_scope/out_of_scope`; +- `business_scope: document_review` -> `company_specific_accounting`; +- `candidate_labels: show_documents` -> `simple_factual`. + +3. Time scope recovery from loose local payload: +- supports `time_scope.period_type/year/month` shape; +- maps to strict schema `time_scope.type/value/confidence`; +- month payload becomes `YYYY-MM` (example: `2020-05`). + +4. No architecture drift: +- deterministic routing and execution policy unchanged; +- no free-form SQL/query builder introduced; +- no recipe whitelist widening. + +## Verification + +- `npm.cmd --prefix .\\llm_normalizer\\backend run test -- normalizerServiceCoercion.test.ts` -> PASS (`2` tests) +- `npm.cmd --prefix .\\llm_normalizer\\backend run test -- addressQueryRuntimeM23.test.ts` -> PASS (`46` tests) +- `npm.cmd --prefix .\\llm_normalizer\\backend run build` -> PASS + +## Live Regression Focus (manual) + +Run these in UI and inspect `technical_debug_payload_json`: + +1. `svk doki za 20god pokezh` +Expected: address lane preserved; no unsupported fallback due to malformed fragment schema. + +2. `Kakoi ostatok po schetu 60 na 2020 mai` +Expected: month interpreted as May 2020 window, not whole year/current date. + +3. `svk 20 god - pokaji doki pls` +Expected: noise tail ignored, anchor extracted from core phrase. diff --git a/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/before_after_metrics.json b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/before_after_metrics.json new file mode 100644 index 0000000..16e8dfb --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/before_after_metrics.json @@ -0,0 +1,34 @@ +{ + "run_id": "2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer", + "comparison": { + "baseline_ref": "2026-04-01_Address_Query_Runtime_V1_M2_3E_Stability_Hardening_AccountQueryScope", + "current_ref": "workspace (after M2.3f coercion layer)" + }, + "metrics": { + "coercion_regression_cases": { + "before": 0, + "after": 2, + "delta": 2 + }, + "address_m23_test_cases": { + "before": 46, + "after": 46, + "delta": 0 + }, + "address_m23_test_failures": { + "before": 0, + "after": 0, + "delta": 0 + }, + "llm_predecompose_schema_drift_handling": { + "before": "best-effort salvage mainly at assistant side", + "after": "normalizer-side coercion + strict schema policy", + "delta": "stability_improved" + } + }, + "notes": [ + "new tests cover malformed local fragment payload and year-month coercion", + "deterministic route and recipe selection policy remain unchanged", + "build and existing address runtime suite remain green" + ] +} diff --git a/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/changed_files.txt b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/changed_files.txt new file mode 100644 index 0000000..13fc9ae --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/changed_files.txt @@ -0,0 +1,9 @@ +llm_normalizer/backend/src/services/normalizerService.ts +llm_normalizer/backend/tests/normalizerServiceCoercion.test.ts +llm_normalizer/backend/dist/services/normalizerService.js + +docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/README.md +docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/run_summary.json +docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/before_after_metrics.json +docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/smoke_checks.md +docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/changed_files.txt diff --git a/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/run_summary.json b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/run_summary.json new file mode 100644 index 0000000..75e4bde --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/run_summary.json @@ -0,0 +1,39 @@ +{ + "run_id": "2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer", + "date": "2026-04-01", + "stage": "Address Query Runtime V1", + "wave": "M2.3f", + "goal": "LLM pre-decompose coercion layer for schema-drifted local outputs with strict v2_0_2 compatibility", + "status": "COMPLETED", + "scope": { + "new_intents": false, + "deep_analysis_changes": false, + "focus": [ + "local LLM schema-drift coercion", + "fragment-level type recovery", + "time_scope loose-shape normalization", + "no-route regression prevention for malformed local payloads" + ] + }, + "checks": { + "test_command_primary": "npm.cmd --prefix .\\llm_normalizer\\backend run test -- normalizerServiceCoercion.test.ts", + "test_command_secondary": "npm.cmd --prefix .\\llm_normalizer\\backend run test -- addressQueryRuntimeM23.test.ts", + "build_command": "npm.cmd --prefix .\\llm_normalizer\\backend run build", + "tests_passed": 48, + "tests_failed": 0 + }, + "guardrails": { + "false_factual_rate_target": 0, + "free_form_query_builder": "not_added", + "whitelist_recipe_policy": "unchanged" + }, + "key_changes": { + "coercion_layer_added": true, + "numeric_fragment_id_recovery": true, + "boolean_domain_relevance_recovery": true, + "local_business_scope_alias_recovery": true, + "candidate_label_alias_recovery": true, + "period_type_year_month_recovery": true, + "routing_policy_changed": false + } +} diff --git a/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/smoke_checks.md b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/smoke_checks.md new file mode 100644 index 0000000..ae996d6 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3F_LLM_Decompose_Coercion_Layer/smoke_checks.md @@ -0,0 +1,28 @@ +# Smoke Checks + +## Backend tests + +- Command: `npm.cmd --prefix .\\llm_normalizer\\backend run test -- normalizerServiceCoercion.test.ts` +- Result: PASS +- Details: `1 passed file`, `2 passed tests`, `0 failed` + +- Command: `npm.cmd --prefix .\\llm_normalizer\\backend run test -- addressQueryRuntimeM23.test.ts` +- Result: PASS +- Details: `1 passed file`, `46 passed tests`, `0 failed` + +## Build + +- Command: `npm.cmd --prefix .\\llm_normalizer\\backend run build` +- Result: PASS +- Details: TypeScript build completed without errors. + +## Manual spot-check focus + +- Query: ` 20 ` +- Expected: no unsupported/no-route caused by malformed local fragment schema. + +- Query: ` 60 2020 ` +- Expected: month window (`2020-05-01..2020-05-31`) inferred consistently. + +- Query: ` 20 - ` +- Expected: noise tail ignored; anchor stays ``. diff --git a/docs/ADDRESS/tz/1/eco-aip-backend.zip b/docs/ADDRESS/tz/1/eco-aip-backend.zip new file mode 100644 index 0000000..dd9c110 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend.zip differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/README.md b/docs/ADDRESS/tz/1/eco-aip-backend/README.md new file mode 100644 index 0000000..6828676 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/README.md @@ -0,0 +1,55 @@ +# eco-aip-backend + +Minimal backend skeleton for AIP Ecology Analytics. + +## Quick start +1) Copy `.env.example` to `.env` and edit values if needed. +2) Run: + +```bash +docker compose up -d --build +``` + +## Verify +- API health: + +```bash +curl http://localhost:9501/health +``` + +- Summary (last 24h by default): + +```bash +curl "http://localhost:9501/aip/waqi/summary" +``` + +- Anomalies (last 24h by default): + +```bash +curl "http://localhost:9501/aip/waqi/anomalies" +``` + +- History (daily measurements, MSK date): + +```bash +curl "http://localhost:9501/aip/waqi/history?date=2025-12-22" +``` + +- DB tables: + +```bash +docker compose exec db psql -U aip_user -d aip_ecology -c "\dt" +``` + +- Worker ticks: + +```bash +docker compose logs -f worker +``` + +## Notes +- Times are stored as UTC (`timestamptz`). +- Schema is initialized from `db/init/001_init.sql` on first DB start. +- Worker ingests WAQI bounds data using `WAQI_TOKEN` and bbox env values. +- Database files are stored in `db/data` (bind mount). +- Worker detects basic anomalies (delay/stuck/spike) using observed_ts and env thresholds. diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/api/Dockerfile b/docs/ADDRESS/tz/1/eco-aip-backend/api/Dockerfile new file mode 100644 index 0000000..38e4db6 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/api/Dockerfile @@ -0,0 +1,15 @@ +FROM python:3.11-slim + +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONUNBUFFERED=1 + +WORKDIR /app + +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +COPY app ./app + +EXPOSE 8000 + +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/api/app/main.py b/docs/ADDRESS/tz/1/eco-aip-backend/api/app/main.py new file mode 100644 index 0000000..59b195b --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/api/app/main.py @@ -0,0 +1,1841 @@ +import json +import os +import re +import uuid +from datetime import datetime, timedelta, timezone + +import httpx +import psycopg2 +from fastapi import Body, Depends, FastAPI, HTTPException, Query, Request +from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import JSONResponse + +app = FastAPI() + +DATABASE_URL = os.environ.get("DATABASE_URL") +API_KEY = os.environ.get("API_KEY", "").strip() +INGESTED_WINDOW_MINUTES = 30 +OBSERVED_FRESH_MINUTES = 60 +OBSERVED_RECENT_HOURS = 4 +CORS_ORIGINS = [ + origin.strip() + for origin in os.environ.get("CORS_ORIGINS", "http://localhost:5173").split(",") + if origin.strip() +] + +LOCAL_TZ = timezone(timedelta(hours=3)) +UI_TZ = "Europe/Moscow" + +LLM_BASE_URL = os.environ.get("LLM_BASE_URL", "").rstrip("/") +LLM_MODEL = os.environ.get("LLM_MODEL", "saiga_nemo_12b_gguf") +LLM_TIMEOUT = float(os.environ.get("LLM_TIMEOUT", "60")) +LLM_MAX_STATIONS = int(os.environ.get("LLM_MAX_STATIONS", "30")) + +MAX_TOOL_ITERATIONS = 3 +MAX_RANGE_HOURS_SNAPSHOT = 72 +MAX_RANGE_DAYS_ANOMALIES = 14 +MAX_RANGE_DAYS_HISTORY = 31 +MAX_STATIONS_IN_SNAPSHOT = LLM_MAX_STATIONS +MAX_ANOMALIES = 100 +MAX_ANOMALIES_ANSWER = 10 +MAX_ANOMALIES_BRIEF = 3 +MAX_ANOMALIES_FULL_LIST = 30 +MAX_HISTORY_POINTS = 500 +MIN_HISTORY_STEP_SECONDS = 300 + +TOOLS_WHITELIST = ["get_snapshot", "get_anomalies", "get_station_history"] +REQUEST_TYPES = ["smalltalk", "meta", "eco"] + +ANOMALY_TOPIC_TRIGGERS = [ + "аномал", + "всплеск", + "скач", + "скачок", + "пик", + "пики", + "залип", + "застрял", + "подозр", + "резк", + "spike", + "stuck", + "outlier", + "flatline", + "stale", + "not updating", +] +ANOMALY_DETAIL_TRIGGERS = [ + "перечисли", + "список", + "покажи все", + "подроб", + "подтверж", + "значени", + "дельта", + "по станциям", + "когда", + "таймстемп", + "evidence", + "timestamps", + "details", + "list", + "show all", + "where", + "which", +] +ANOMALY_FULL_LIST_TRIGGERS = [ + "полный список", + "покажи все", + "перечисли все", + "все аномалии", + "все всплески", + "покажи полный", + "show all anomalies", + "full list", +] +ANOMALY_TIME_ORDER_TRIGGERS = [ + "по времени", + "хронолог", + "по порядку", + "сначала", + "по хронологии", + "chronolog", +] +HISTORY_TRIGGERS = [ + "истор", + "график", + "динамик", + "тренд", + "таймлайн", + "по часам", + "по минутам", + "за период", + "серия", + "кривая", + "trend", + "history", + "timeline", + "time series", + "series", + "chart", + "plot", + "over time", +] +SMALLTALK_TRIGGERS = [ + "привет", + "здрав", + "добрый", + "как дела", + "спасибо", + "спс", + "ок", + "окей", + "оке", + "лол", + "тест", + "провер", + "работает", + "напиши фразу", + "напиши слово", + "угу", + "ага", + "ясно", + "понятно", + "ладно", + "алло", + "ты тут", + "hi", + "hello", + "thanks", + "ok", + "test", + "write a phrase", + "are you there", + "ping", +] +META_TRIGGERS = [ + "почему ты", + "как работает", + "что такое", + "объясни", + "tool", + "snapshot", + "scope", + "evidence", + "prompt", + "model", + "llm", + "system", + "tools", + "оркестратор", + "router", + "answer", + "контекст", + "json", + "schema", + "endpoint", + "api", + "backend", +] +ECO_TRIGGERS = [ + "aqi", + "air quality", + "воздух", + "качество воздуха", + "станц", + "измерен", + "свеж", + "данные", + "ingest", + "observed", + "fresh", + "recent", + "stale", + "pm2.5", + "pm10", + "anomal", + "station", + "history", + "timeline", +] + +if CORS_ORIGINS: + allow_credentials = True + if CORS_ORIGINS == ["*"]: + allow_credentials = False + app.add_middleware( + CORSMiddleware, + allow_origins=CORS_ORIGINS, + allow_credentials=allow_credentials, + allow_methods=["*"], + allow_headers=["*"], + ) + + +def require_db_url(): + if not DATABASE_URL: + raise RuntimeError("DATABASE_URL is not set") + + +def require_api_key(request: Request): + if not API_KEY: + return + provided = request.headers.get("x-api-key") or "" + if provided != API_KEY: + raise HTTPException(status_code=401, detail="invalid api key") + + +def require_llm_base_url(): + if not LLM_BASE_URL: + raise RuntimeError("LLM_BASE_URL is not set") + + +def text_has_any(text, keywords): + return any(keyword in text for keyword in keywords) + + +def classify_message(message): + text = (message or "").lower() + ecoish = ( + text_has_any(text, ECO_TRIGGERS) + or text_has_any(text, ANOMALY_TOPIC_TRIGGERS) + or text_has_any(text, HISTORY_TRIGGERS) + ) + if ecoish: + return "eco" + if text_has_any(text, META_TRIGGERS): + return "meta" + if text_has_any(text, SMALLTALK_TRIGGERS): + return "smalltalk" + text = text.strip() + if not text: + return "smalltalk" + return "eco" + + +def extract_station_id(text): + if not text: + return None + match = re.search(r"(?:station|станц)[^0-9]*(\d+)", text, re.IGNORECASE) + if not match: + return None + try: + return int(match.group(1)) + except ValueError: + return None + + +def parse_dt(value): + if not value: + return None + value = value.strip() + if value.endswith("Z"): + value = value[:-1] + "+00:00" + try: + dt = datetime.fromisoformat(value) + except ValueError as exc: + raise HTTPException(status_code=400, detail=f"Invalid datetime: {value}") from exc + if dt.tzinfo is None: + dt = dt.replace(tzinfo=timezone.utc) + return dt.astimezone(timezone.utc) + + +ISO_LLM_DATETIME_RE = re.compile( + r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?$" +) + + +def format_llm_timestamp(value): + if not isinstance(value, str) or not ISO_LLM_DATETIME_RE.match(value): + return value + try: + dt = parse_dt(value) + except HTTPException: + return value + local = dt.astimezone(LOCAL_TZ) + return local.strftime("%Y-%m-%d %H:%M") + + +def localize_llm_times(value): + if isinstance(value, dict): + return {key: localize_llm_times(val) for key, val in value.items()} + if isinstance(value, list): + return [localize_llm_times(item) for item in value] + return format_llm_timestamp(value) + + +def parse_date(value): + if not value: + return None + try: + return datetime.strptime(value, "%Y-%m-%d").date() + except ValueError as exc: + raise HTTPException(status_code=400, detail=f"Invalid date: {value}") from exc + + +def day_bounds_utc(day): + local_start = datetime(day.year, day.month, day.day, tzinfo=LOCAL_TZ) + local_end = local_start + timedelta(days=1) + return local_start.astimezone(timezone.utc), local_end.astimezone(timezone.utc) + + +def dt_iso(dt): + if dt is None: + return None + return dt.astimezone(timezone.utc).isoformat().replace("+00:00", "Z") + + +def local_date_key(dt): + if dt is None: + return None + if dt.tzinfo is None: + dt = dt.replace(tzinfo=timezone.utc) + return dt.astimezone(LOCAL_TZ).date().isoformat() + + +def build_station_snapshots(cur): + cur.execute( + """ + WITH last_ingested AS ( + SELECT station_id, MAX(ingested_ts) AS last_ingested_ts + FROM measurements + GROUP BY station_id + ), + last_observed AS ( + SELECT DISTINCT ON (station_id) station_id, observed_ts AS last_observed_ts + FROM measurements + ORDER BY station_id, observed_ts DESC + ), + last_aqi AS ( + SELECT DISTINCT ON (station_id) station_id, observed_ts AS last_aqi_ts, aqi AS last_aqi + FROM measurements + WHERE aqi IS NOT NULL + ORDER BY station_id, observed_ts DESC + ) + SELECT s.id, + s.provider_uid, + s.name, + s.lat, + s.lon, + li.last_ingested_ts, + lo.last_observed_ts, + la.last_aqi, + la.last_aqi_ts + FROM stations s + LEFT JOIN last_ingested li ON li.station_id = s.id + LEFT JOIN last_observed lo ON lo.station_id = s.id + LEFT JOIN last_aqi la ON la.station_id = s.id + ORDER BY s.id; + """ + ) + return cur.fetchall() + + +def classify_station(now, last_ingested_ts, last_observed_ts): + ingested_cutoff = now - timedelta(minutes=INGESTED_WINDOW_MINUTES) + fresh_cutoff = now - timedelta(minutes=OBSERVED_FRESH_MINUTES) + recent_cutoff = now - timedelta(hours=OBSERVED_RECENT_HOURS) + in_flow = bool(last_ingested_ts and last_ingested_ts >= ingested_cutoff) + fresh = bool(in_flow and last_observed_ts and last_observed_ts >= fresh_cutoff) + recent = bool( + in_flow and last_observed_ts and recent_cutoff <= last_observed_ts < fresh_cutoff + ) + stale = bool(in_flow and (not last_observed_ts or last_observed_ts < recent_cutoff)) + return in_flow, fresh, recent, stale + + +def sort_stations_for_llm(stations): + def key(item): + aqi = item.get("last_aqi") + aqi_missing = aqi is None + observed = item.get("last_observed_ts") + observed_dt = parse_dt(observed) if observed else None + observed_ts = observed_dt.timestamp() if observed_dt else float("-inf") + station_id = item.get("station_id") or 0 + return ( + aqi_missing, + -(float(aqi) if aqi is not None else 0.0), + -observed_ts, + station_id, + ) + + return sorted(stations, key=key) + + +def select_llm_stations(stations): + ordered = sort_stations_for_llm(stations) + limited = ordered[:LLM_MAX_STATIONS] + total = len(ordered) + return { + "stations": limited, + "stations_total": total, + "stations_in_snapshot": len(limited), + "stations_truncated": total > len(limited), + "selection_rule": "aqi_desc_top_n", + } + + +def fetch_stations(now): + require_db_url() + items = [] + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + for ( + station_id, + provider_uid, + name, + lat, + lon, + last_ingested_ts, + last_observed_ts, + last_aqi, + last_aqi_ts, + ) in build_station_snapshots(cur): + in_flow, fresh, recent, stale = classify_station( + now, last_ingested_ts, last_observed_ts + ) + items.append( + { + "station_id": station_id, + "provider_uid": provider_uid, + "name": name, + "lat": lat, + "lon": lon, + "last_aqi": last_aqi, + "last_aqi_ts": dt_iso(last_aqi_ts), + "last_observed_ts": dt_iso(last_observed_ts), + "last_ingested_ts": dt_iso(last_ingested_ts), + "in_flow": in_flow, + "fresh": fresh, + "recent": recent, + "stale": stale, + } + ) + return items + + +def fetch_summary(now, from_ts, to_ts): + require_db_url() + stations_total = 0 + inflow_count = 0 + fresh_count = 0 + recent_count = 0 + stale_count = 0 + last_ingested = None + last_observed = None + aqi_values = [] + + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + cur.execute("SELECT COUNT(*) FROM stations;") + stations_total = cur.fetchone()[0] + + for ( + _station_id, + _provider_uid, + _name, + _lat, + _lon, + last_ingested_ts, + last_observed_ts, + last_aqi, + _last_aqi_ts, + ) in build_station_snapshots(cur): + if last_ingested_ts and (last_ingested is None or last_ingested_ts > last_ingested): + last_ingested = last_ingested_ts + if last_observed_ts and (last_observed is None or last_observed_ts > last_observed): + last_observed = last_observed_ts + + in_flow, fresh, recent, stale = classify_station( + now, last_ingested_ts, last_observed_ts + ) + if not in_flow: + continue + inflow_count += 1 + if fresh: + fresh_count += 1 + elif recent: + recent_count += 1 + else: + stale_count += 1 + if last_aqi is not None: + aqi_values.append(last_aqi) + + avg_now = None + max_now = None + if aqi_values: + avg_now = sum(aqi_values) / len(aqi_values) + max_now = max(aqi_values) + + return { + "range": {"from": dt_iso(from_ts), "to": dt_iso(to_ts)}, + "windows": { + "ingested_minutes": INGESTED_WINDOW_MINUTES, + "observed_fresh_minutes": OBSERVED_FRESH_MINUTES, + "observed_recent_hours": OBSERVED_RECENT_HOURS, + }, + "stations_total": stations_total, + "in_flow": inflow_count, + "fresh": fresh_count, + "recent": recent_count, + "stale": stale_count, + "aqi_now": { + "avg": avg_now, + "max": max_now, + "count": len(aqi_values), + }, + "last_ingested_ts": dt_iso(last_ingested), + "last_observed_ts": dt_iso(last_observed), + "now": dt_iso(now), + } + + +def fetch_anomalies_summary(from_ts, to_ts, anomaly_types=None, station_id=None): + require_db_url() + params = [from_ts, to_ts] + where = ["a.ts_start >= %s", "a.ts_start <= %s"] + if station_id is not None: + where.append("a.station_id = %s") + params.append(station_id) + types = None + if anomaly_types: + if isinstance(anomaly_types, str): + types = [anomaly_types] + else: + types = list(anomaly_types) + if types: + where.append("a.type = ANY(%s)") + params.append(types) + where_sql = " AND ".join(where) + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + cur.execute( + f""" + SELECT COUNT(*) + FROM anomalies a + WHERE {where_sql}; + """, + params, + ) + count = cur.fetchone()[0] + return {"has_anomalies": count > 0, "count": count} + + +def build_snapshot(now, from_ts, to_ts, mode, station_focus=None, max_stations=None): + summary = fetch_summary(now, from_ts, to_ts) + stations = fetch_stations(now) + selection = select_llm_stations(stations) + if max_stations and max_stations < selection["stations_in_snapshot"]: + selection["stations"] = selection["stations"][:max_stations] + selection["stations_in_snapshot"] = len(selection["stations"]) + selection["stations_truncated"] = selection["stations_total"] > selection["stations_in_snapshot"] + anomalies_summary = fetch_anomalies_summary( + from_ts, + to_ts, + anomaly_types=["spike", "stuck"], + station_id=station_focus, + ) + return { + "type": "snapshot_v1", + "request_id": str(uuid.uuid4()), + "generated_at": dt_iso(now), + "ui": { + "mode": mode, + "range": { + "from": dt_iso(from_ts), + "to": dt_iso(to_ts), + "tz": UI_TZ, + }, + "station_focus": station_focus, + }, + "limits": { + "max_tool_iterations": MAX_TOOL_ITERATIONS, + "max_range_hours_snapshot": MAX_RANGE_HOURS_SNAPSHOT, + "max_range_days_anomalies": MAX_RANGE_DAYS_ANOMALIES, + "max_range_days_history": MAX_RANGE_DAYS_HISTORY, + "max_stations_in_snapshot": MAX_STATIONS_IN_SNAPSHOT, + "max_anomalies": MAX_ANOMALIES, + "max_history_points": MAX_HISTORY_POINTS, + "min_history_step_seconds": MIN_HISTORY_STEP_SECONDS, + }, + "data": { + "summary": summary, + "stations": selection["stations"], + "anomalies_summary": anomalies_summary, + "stations_in_snapshot": selection["stations_in_snapshot"], + "stations_truncated": selection["stations_truncated"], + "selection_rule": selection["selection_rule"], + }, + "tools_whitelist": TOOLS_WHITELIST, + } + + +def normalize_json(value): + if value is None or isinstance(value, (dict, list)): + return value + if isinstance(value, str): + try: + return json.loads(value) + except json.JSONDecodeError: + return value + return value + + +def fetch_anomalies(from_ts, to_ts, limit, station_id, anomaly_types): + require_db_url() + params = [from_ts, to_ts] + where = ["a.ts_start >= %s", "a.ts_start <= %s"] + if station_id is not None: + where.append("a.station_id = %s") + params.append(station_id) + types = None + if anomaly_types: + if isinstance(anomaly_types, str): + types = [anomaly_types] + else: + types = list(anomaly_types) + if types: + where.append("a.type = ANY(%s)") + params.append(types) + params.append(limit) + where_sql = " AND ".join(where) + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + cur.execute( + f""" + SELECT a.id, a.station_id, s.name, a.type, a.severity, a.confidence, + a.ts_start, a.ts_end, a.metric, a.evidence, a.created_at + FROM anomalies a + LEFT JOIN stations s ON s.id = a.station_id + WHERE {where_sql} + ORDER BY a.ts_start DESC + LIMIT %s; + """, + params, + ) + rows = cur.fetchall() + items = [] + for ( + anomaly_id, + row_station_id, + station_name, + row_type, + severity, + confidence, + ts_start, + ts_end, + metric, + evidence, + created_at, + ) in rows: + items.append( + { + "id": anomaly_id, + "station_id": row_station_id, + "station_name": station_name, + "type": row_type, + "severity": severity, + "confidence": confidence, + "ts_start": dt_iso(ts_start), + "ts_end": dt_iso(ts_end), + "metric": metric, + "evidence": normalize_json(evidence), + "created_at": dt_iso(created_at), + } + ) + return { + "range": {"from": dt_iso(from_ts), "to": dt_iso(to_ts)}, + "items": items, + } + + +def fetch_history(from_ts, to_ts, since_ts): + require_db_url() + params = [from_ts, to_ts] + conditions = ["m.observed_ts >= %s", "m.observed_ts < %s"] + if since_ts and since_ts > from_ts: + conditions.append("m.observed_ts > %s") + params.append(since_ts) + where_sql = " AND ".join(conditions) + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + cur.execute( + f""" + SELECT m.station_id, + s.provider_uid, + s.name, + s.lat, + s.lon, + m.observed_ts, + m.ingested_ts, + m.aqi + FROM measurements m + JOIN stations s ON s.id = m.station_id + WHERE {where_sql} + ORDER BY m.observed_ts ASC, m.station_id ASC; + """, + params, + ) + rows = cur.fetchall() + items = [] + for ( + station_id, + provider_uid, + name, + lat, + lon, + observed_ts, + ingested_ts, + aqi, + ) in rows: + items.append( + { + "station_id": station_id, + "provider_uid": provider_uid, + "name": name, + "lat": lat, + "lon": lon, + "observed_ts": dt_iso(observed_ts), + "ingested_ts": dt_iso(ingested_ts), + "aqi": aqi, + } + ) + return items + + +def fetch_history_bounds(): + require_db_url() + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + cur.execute( + """ + SELECT MIN(observed_ts), MAX(observed_ts) + FROM measurements; + """ + ) + row = cur.fetchone() + if not row: + return None, None + return row[0], row[1] + + +def compute_history_step(from_ts, to_ts, requested_step_seconds): + range_seconds = max((to_ts - from_ts).total_seconds(), 1) + step_seconds = requested_step_seconds or MIN_HISTORY_STEP_SECONDS + step_seconds = max(step_seconds, MIN_HISTORY_STEP_SECONDS) + min_for_points = int(range_seconds / MAX_HISTORY_POINTS) + 1 + if min_for_points > step_seconds: + step_seconds = min_for_points + return step_seconds + + +def fetch_station_history(station_id, from_ts, to_ts, step_seconds): + require_db_url() + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + cur.execute( + """ + SELECT observed_ts, aqi + FROM measurements + WHERE station_id = %s + AND observed_ts >= %s + AND observed_ts <= %s + ORDER BY observed_ts ASC; + """, + [station_id, from_ts, to_ts], + ) + rows = cur.fetchall() + step_seconds = compute_history_step(from_ts, to_ts, step_seconds) + buckets = {} + for observed_ts, aqi in rows: + index = int((observed_ts - from_ts).total_seconds() // step_seconds) + bucket_ts = from_ts + timedelta(seconds=index * step_seconds) + bucket = buckets.setdefault(bucket_ts, {"sum": 0.0, "count": 0}) + if aqi is not None: + bucket["sum"] += float(aqi) + bucket["count"] += 1 + points = [] + for bucket_ts in sorted(buckets): + count = buckets[bucket_ts]["count"] + if count <= 0: + continue + points.append( + { + "ts": dt_iso(bucket_ts), + "aqi": buckets[bucket_ts]["sum"] / count, + } + ) + return { + "station_id": station_id, + "range": {"from": dt_iso(from_ts), "to": dt_iso(to_ts)}, + "step_seconds": step_seconds, + "points": points, + } + + +ROUTER_PROMPT = ( + "Ты — Router AIP Ecology. Верни ТОЛЬКО JSON по схеме router_decision_v1.\n" + "Всегда указывай request_type: smalltalk | meta | eco.\n" + "\n" + "Определение request_type:\n" + "- smalltalk: привет/как дела/спасибо/ок/анекдот/тест/поболтать.\n" + "- meta: вопросы «почему ты», «при чем тут», «ты о чем», вопросы о системе/промптах/tools/snapshot.\n" + "- eco: вопросы про воздух/AQI/станции/аномалии/историю/диапазон/свежесть.\n" + "\n" + "Правила:\n" + "- Если request_type = smalltalk или meta -> type = no_tool.\n" + "- Если request_type = eco и snapshot_v1 достаточно -> type = no_tool, reason = snapshot_enough.\n" + "- Если request_type = eco и нужны детали -> type = tool_call_v1.\n" + "Инструменты:\n" + "- get_anomalies: списки/подтверждение аномалий.\n" + "- get_station_history: таймсерия по станции.\n" + "- get_snapshot: только если нужен другой диапазон/режим или snapshot отсутствует.\n" + "Без лишнего текста." +) +ANSWER_PROMPT = ( + "Ты — аналитик AIP Ecology.\n" + "REQUEST_TYPE уже определён на backend. Не переклассифицируй.\n" + "\n" + "Правила по REQUEST_TYPE:\n" + "- SMALLTALK/TEST: ответь кратко (1-2 предложения) на языке пользователя. " + "НЕ упоминай snapshot_v1, tool_result_v1, качество воздуха/AQI, мониторинг, станции, аномалии, диапазоны, временные метки, " + "\"нет данных\", ingestion/observation или аналитику.\n" + "- META: кратко объясни на языке пользователя. " + "Не анализируй качество воздуха и не упоминай конкретные станции, если явно не спросили.\n" + "- ECO: отвечай ТОЛЬКО по SNAPSHOT_JSON и TOOL_RESULT. Не выдумывай.\n" + "\n" + "Правила ECO:\n" + "- Не добавляй строку вида \"Период: ...\" — период показывает UI.\n" + "- Упоминай аномалии ТОЛЬКО если пользователь спросил про аномалии/риски ИЛИ TOOL_RESULT.tool == get_anomalies.\n" + "- Если TOOL_RESULT есть и ok=false: ответь кратко: \"ошибка инструмента: \".\n" + "- Если TOOL_RESULT items/points пустые ИЛИ error.code == NO_DATA: ответ строго: \"нет данных\".\n" + "- Если есть ANOMALIES_BRIEF: используй только его факты и числа, не выводи ISO/JSON.\n" + " Обычно достаточно 1–2 связных предложения, затем 2–5 коротких строк с примерами.\n" + "\n" + "Стиль: деловой и лаконичный. Эмодзи допустимы, но умеренно. Без лишних вступлений и без пустых фраз.\n" + "Отвечай на языке пользователя." +) + + +def router_response_format(): + return { + "type": "json_schema", + "json_schema": { + "name": "router_decision_v1", + "strict": True, + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "router_decision_v1", + "type": "object", + "oneOf": [ + { + "type": "object", + "required": ["type", "request_type", "id", "tool", "args"], + "properties": { + "type": {"const": "tool_call_v1"}, + "request_type": { + "type": "string", + "enum": REQUEST_TYPES, + }, + "id": {"type": "string", "minLength": 1}, + "tool": { + "type": "string", + "enum": TOOLS_WHITELIST, + }, + "args": {"type": "object"}, + }, + "additionalProperties": False, + }, + { + "type": "object", + "required": ["type", "request_type"], + "properties": { + "type": {"const": "no_tool"}, + "request_type": { + "type": "string", + "enum": REQUEST_TYPES, + }, + "reason": {"type": "string"}, + }, + "additionalProperties": False, + }, + ], + }, + }, + } + + +def call_llm(messages, temperature, max_tokens, response_format=None): + require_llm_base_url() + payload = { + "model": LLM_MODEL, + "messages": messages, + "temperature": temperature, + "max_tokens": max_tokens, + } + if response_format: + payload["response_format"] = response_format + try: + with httpx.Client(timeout=LLM_TIMEOUT) as client: + resp = client.post(f"{LLM_BASE_URL}/v1/chat/completions", json=payload) + except httpx.RequestError as exc: + raise HTTPException(status_code=502, detail=f"LLM request failed: {exc}") from exc + if resp.status_code >= 400: + raise HTTPException( + status_code=502, + detail=f"LLM error {resp.status_code}: {resp.text}", + ) + try: + raw_text = resp.content.decode("utf-8") + except UnicodeDecodeError: + raw_text = resp.content.decode("utf-8", errors="replace") + try: + data = json.loads(raw_text) + except json.JSONDecodeError as exc: + raise HTTPException(status_code=502, detail="LLM response invalid JSON") from exc + try: + return data["choices"][0]["message"]["content"] + except (KeyError, IndexError, TypeError) as exc: + raise HTTPException(status_code=502, detail="LLM response invalid") from exc + + +def parse_json_content(text): + if not text: + return None + try: + return json.loads(text) + except json.JSONDecodeError: + start = text.find("{") + end = text.rfind("}") + if start == -1 or end == -1 or end <= start: + return None + try: + return json.loads(text[start : end + 1]) + except json.JSONDecodeError: + return None + + +def normalize_request_type(value, reason, message): + if isinstance(value, str): + value = value.strip().lower() + if value in REQUEST_TYPES: + return value + reason_text = (reason or "").lower() + if "smalltalk" in reason_text: + return "smalltalk" + if "meta" in reason_text: + return "meta" + fallback = classify_message(message) if message else "eco" + if fallback in REQUEST_TYPES: + return fallback + return "eco" + + +def normalize_router_decision(decision, message): + if not isinstance(decision, dict): + return { + "type": "no_tool", + "reason": "router_invalid_json", + "request_type": normalize_request_type(None, None, message), + } + decision_type = decision.get("type") + reason = decision.get("reason") + request_type = normalize_request_type(decision.get("request_type"), reason, message) + if decision_type == "tool_call_v1": + tool = decision.get("tool") + args = decision.get("args") + if tool not in TOOLS_WHITELIST or not isinstance(args, dict): + return { + "type": "no_tool", + "reason": "router_invalid_tool", + "request_type": request_type, + } + tool_id = decision.get("id") or f"call_{uuid.uuid4().hex[:8]}" + return { + "type": "tool_call_v1", + "id": tool_id, + "tool": tool, + "args": args, + "request_type": request_type, + } + if decision_type == "no_tool": + return { + "type": "no_tool", + "reason": reason or "snapshot_enough", + "request_type": request_type, + } + return { + "type": "no_tool", + "reason": "router_invalid_json", + "request_type": request_type, + } + + +def run_router(snapshot_json, message): + messages = [ + {"role": "system", "content": ROUTER_PROMPT}, + {"role": "user", "content": f"SNAPSHOT_JSON: {snapshot_json}"}, + {"role": "user", "content": f"QUESTION: {message}"}, + ] + content = call_llm( + messages, + temperature=0, + max_tokens=200, + response_format=router_response_format(), + ) + decision = parse_json_content(content) + if decision is None: + repair_messages = [ + { + "role": "system", + "content": "Return only JSON that matches the schema. Include request_type. No extra text.", + }, + {"role": "user", "content": content}, + ] + repair_content = call_llm( + repair_messages, + temperature=0, + max_tokens=200, + response_format=router_response_format(), + ) + decision = parse_json_content(repair_content) + return normalize_router_decision(decision, message) + + +def snapshot_range_args(snapshot): + ui_range = snapshot["ui"]["range"] + return { + "from": ui_range["from"], + "to": ui_range["to"], + "tz": ui_range.get("tz") or UI_TZ, + } + + +def build_period_payload(snapshot, tool_result=None): + range_data = None + if tool_result and tool_result.get("ok"): + data = tool_result.get("data") or {} + range_data = data.get("range") + if not range_data: + range_data = snapshot.get("ui", {}).get("range") or {} + from_ts = range_data.get("from") + to_ts = range_data.get("to") + if not from_ts or not to_ts: + return None + return { + "from": from_ts, + "to": to_ts, + "tz": range_data.get("tz") or UI_TZ, + } + + +def wants_anomaly_details(message): + text = (message or "").lower() + if not text_has_any(text, ANOMALY_TOPIC_TRIGGERS): + return False + return text_has_any(text, ANOMALY_DETAIL_TRIGGERS) + + +def wants_anomaly_full_list(message): + text = (message or "").lower() + if not text_has_any(text, ANOMALY_TOPIC_TRIGGERS): + return False + return text_has_any(text, ANOMALY_FULL_LIST_TRIGGERS) + + +def wants_anomaly_chrono(message): + text = (message or "").lower() + return text_has_any(text, ANOMALY_TIME_ORDER_TRIGGERS) + + +def wants_history(message): + text = (message or "").lower() + return text_has_any(text, HISTORY_TRIGGERS) + + +def apply_fallbacks(decision, message, snapshot, station_focus, message_type): + if message_type != "eco": + return decision + if decision["type"] != "no_tool": + return decision + station_id = station_focus or extract_station_id(message) + if wants_anomaly_details(message): + return { + "type": "tool_call_v1", + "id": f"call_{uuid.uuid4().hex[:8]}", + "tool": "get_anomalies", + "args": { + "range": snapshot_range_args(snapshot), + "types": ["spike", "stuck"], + "limit": MAX_ANOMALIES, + }, + } + if station_id and wants_history(message): + return { + "type": "tool_call_v1", + "id": f"call_{uuid.uuid4().hex[:8]}", + "tool": "get_station_history", + "args": { + "station_id": station_id, + "range": snapshot_range_args(snapshot), + "step_seconds": MIN_HISTORY_STEP_SECONDS, + }, + } + return decision + + +def sanitize_tool_call(decision, station_focus, snapshot): + if decision.get("type") != "tool_call_v1": + return decision + tool = decision.get("tool") + args = decision.get("args") or {} + if not isinstance(args, dict): + args = {} + if tool == "get_station_history": + station_id = args.get("station_id") + if station_id is None and station_focus is not None: + station_id = station_focus + if station_id is None: + return { + "type": "no_tool", + "reason": "history_requires_station_id", + "request_type": decision.get("request_type") or "eco", + } + try: + station_id = int(station_id) + except (TypeError, ValueError): + return { + "type": "no_tool", + "reason": "history_invalid_station_id", + "request_type": decision.get("request_type") or "eco", + } + args["station_id"] = station_id + if not args.get("range"): + args["range"] = snapshot_range_args(snapshot) + decision["args"] = args + return decision + if tool == "get_anomalies": + if not args.get("range"): + args["range"] = snapshot_range_args(snapshot) + if "limit" not in args and "max_anomalies" in args: + try: + args["limit"] = int(args.get("max_anomalies")) + except (TypeError, ValueError): + pass + decision["args"] = args + return decision + + +def tool_result_is_no_data(tool_result): + if not tool_result: + return False + if tool_result.get("ok") is False: + err = tool_result.get("error") or {} + code = str(err.get("code") or "").upper() + return code == "NO_DATA" + data = tool_result.get("data") or {} + tool = tool_result.get("tool") + if tool == "get_anomalies": + return False + if tool == "get_station_history" and not data.get("points"): + return True + return False + + +def format_tool_error(tool_result): + err = (tool_result or {}).get("error") or {} + code = err.get("code") or "ERROR" + message = err.get("message") or "" + if message: + return f"ошибка инструмента: {code} — {message}" + return f"ошибка инструмента: {code}" + + +def strip_iso_period_lines(text): + if not text: + return text + iso_ts = r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?" + pattern = re.compile(rf"^\s*(?:Период|Period)\s*:\s*{iso_ts}\s*[-–]\s*{iso_ts}\s*$") + lines = str(text).replace("\r", "").split("\n") + kept = [line for line in lines if not pattern.match(line.strip())] + cleaned = "\n".join(kept).strip() + return cleaned or text + + +def clean_station_name(name, station_id=None): + if not name: + return f"station {station_id}" if station_id is not None else "station" + return name.split(" (", 1)[0] + + +def parse_local_dt(value): + if not value: + return None + try: + dt = parse_dt(value) + except HTTPException: + return None + return dt.astimezone(LOCAL_TZ) + + +def format_time_local(dt): + return dt.strftime("%H:%M") if dt else None + + +def format_date_local(dt): + return dt.strftime("%d.%m") if dt else None + + +def is_utc_day_range(from_ts, to_ts): + if not from_ts or not to_ts: + return False + if from_ts[:10] != to_ts[:10]: + return False + start_ok = bool(re.search(r"T00:00(?::00(?:\\.\\d+)?)?(?:Z|[+-]\\d{2}:\\d{2})?$", from_ts)) + end_ok = bool(re.search(r"T23:59(?::59(?:\\.\\d+)?)?(?:Z|[+-]\\d{2}:\\d{2})?$", to_ts)) + return start_ok and end_ok + + +def range_span_days(range_info): + from_dt = parse_local_dt(range_info.get("from")) + to_dt = parse_local_dt(range_info.get("to")) + if not from_dt or not to_dt: + return False + return from_dt.date() != to_dt.date() + + +def build_period_label(range_info): + from_ts = range_info.get("from") + to_ts = range_info.get("to") + if is_utc_day_range(from_ts, to_ts): + try: + day = datetime.strptime(from_ts[:10], "%Y-%m-%d") + except ValueError: + return None + return day.strftime("%d.%m") + from_dt = parse_local_dt(from_ts) + to_dt = parse_local_dt(to_ts) + if from_dt and to_dt and from_dt.date() == to_dt.date(): + return format_date_local(from_dt) + return None + + +def dedupe_anomalies(items): + seen = set() + cleaned = [] + for item in items: + evidence = item.get("evidence") or {} + key = ( + item.get("station_id"), + item.get("type"), + item.get("ts_start"), + item.get("ts_end"), + evidence.get("delta"), + ) + if key in seen: + continue + seen.add(key) + cleaned.append(item) + return cleaned + + +def anomaly_key(item): + evidence = item.get("evidence") or {} + return ( + item.get("station_id"), + item.get("type"), + item.get("ts_start"), + item.get("ts_end"), + evidence.get("delta"), + ) + + +def anomaly_delta(item): + evidence = item.get("evidence") or {} + delta = evidence.get("delta") + if isinstance(delta, (int, float)): + return delta + return -1 + + +def anomaly_time_label(item, include_date): + dt = parse_local_dt(item.get("ts_start")) + if not dt: + return None + time_label = format_time_local(dt) + if include_date: + date_label = format_date_local(dt) + if date_label and time_label: + return f"{date_label} {time_label}" + return date_label or time_label + return time_label + + +def build_anomalies_brief(tool_result, top_n=MAX_ANOMALIES_BRIEF): + data = (tool_result or {}).get("data") or {} + items = data.get("items") or [] + cleaned = dedupe_anomalies(items) + range_info = data.get("range") or {} + include_date = range_span_days(range_info) + period_label = build_period_label(range_info) + stations = set() + for item in cleaned: + station_id = item.get("station_id") + if station_id is not None: + stations.add(station_id) + continue + station_name = item.get("station_name") + if station_name: + stations.add(station_name) + stations_count = len(stations) if stations else None + sorted_by_delta = sorted(cleaned, key=anomaly_delta, reverse=True) + strongest_item = sorted_by_delta[0] if sorted_by_delta else None + strongest_key = anomaly_key(strongest_item) if strongest_item else None + + def to_brief(item): + evidence = item.get("evidence") or {} + return { + "station_name": clean_station_name(item.get("station_name"), item.get("station_id")), + "time_msk": anomaly_time_label(item, include_date), + "prev": evidence.get("prev_aqi"), + "curr": evidence.get("curr_aqi"), + "delta": evidence.get("delta"), + "kind": item.get("type"), + } + + strongest = to_brief(strongest_item) if strongest_item else None + top_items = [] + for item in sorted_by_delta: + if strongest_key and anomaly_key(item) == strongest_key: + continue + top_items.append(to_brief(item)) + if len(top_items) >= top_n: + break + return { + "count": len(cleaned), + "stations_count": stations_count, + "period_label": period_label, + "strongest": strongest, + "top_items": top_items, + } + + +def format_anomalies_full_list(tool_result, max_items=MAX_ANOMALIES_FULL_LIST, chrono=False): + data = (tool_result or {}).get("data") or {} + items = data.get("items") or [] + if not items: + return ( + "За выбранный период аномалий не найдено. " + "Можно проверить 24 часа / 3 дня / другую станцию." + ) + cleaned = dedupe_anomalies(items) + range_info = data.get("range") or {} + include_date = range_span_days(range_info) + if chrono: + cleaned.sort(key=lambda x: x.get("ts_start") or "") + else: + cleaned.sort(key=anomaly_delta, reverse=True) + limit = min(len(cleaned), max_items) + lines = [] + for item in cleaned[:limit]: + evidence = item.get("evidence") or {} + station = clean_station_name(item.get("station_name"), item.get("station_id")) + time_label = anomaly_time_label(item, include_date) + prev = evidence.get("prev_aqi") + curr = evidence.get("curr_aqi") + delta = evidence.get("delta") + parts = [station] + if time_label: + parts.append(time_label) + line = " — ".join(parts) + if prev is not None and curr is not None and delta is not None: + line = f"{line} — {prev} → {curr} (+{delta})" + elif delta is not None: + line = f"{line} — Δ {delta}" + lines.append(line) + if len(cleaned) > limit: + lines.append( + f"Показала первые {limit}. Можно сузить период или выбрать станцию." + ) + return "\n".join(lines) + + +def validate_range(from_ts, to_ts, max_hours=None, max_days=None): + if from_ts is None or to_ts is None: + return "INVALID_RANGE", "Range is required" + if from_ts > to_ts: + return "INVALID_RANGE", "'from' must be <= 'to'" + range_seconds = (to_ts - from_ts).total_seconds() + if max_hours and range_seconds > max_hours * 3600: + return "RANGE_TOO_LARGE", f"Range exceeds {max_hours} hours" + if max_days and range_seconds > max_days * 86400: + return "RANGE_TOO_LARGE", f"Range exceeds {max_days} days" + return None, None + + +def tool_result_ok(tool_id, tool, data): + return { + "type": "tool_result_v1", + "id": tool_id, + "tool": tool, + "ok": True, + "data": data, + } + + +def tool_result_error(tool_id, tool, code, message): + return { + "type": "tool_result_v1", + "id": tool_id, + "tool": tool, + "ok": False, + "error": {"code": code, "message": message}, + } + + +def handle_get_snapshot(args): + range_args = (args or {}).get("range") + if not range_args: + return tool_result_error("missing", "get_snapshot", "INVALID_RANGE", "Range is required") + from_ts = parse_dt(range_args.get("from")) + to_ts = parse_dt(range_args.get("to")) + code, message = validate_range(from_ts, to_ts, max_hours=MAX_RANGE_HOURS_SNAPSHOT) + if code: + return tool_result_error("missing", "get_snapshot", code, message) + limits = (args or {}).get("limits") or {} + stations_limit = limits.get("stations") or MAX_STATIONS_IN_SNAPSHOT + stations_limit = min(int(stations_limit), MAX_STATIONS_IN_SNAPSHOT) + now = datetime.now(timezone.utc) + summary = fetch_summary(now, from_ts, to_ts) + selection = select_llm_stations(fetch_stations(now)) + stations = selection["stations"][:stations_limit] + anomalies_summary = fetch_anomalies_summary( + from_ts, to_ts, anomaly_types=["spike", "stuck"] + ) + data = { + "range": {"from": dt_iso(from_ts), "to": dt_iso(to_ts)}, + "summary": summary, + "stations": stations, + "anomalies_summary": anomalies_summary, + "stations_in_snapshot": len(stations), + "stations_truncated": selection["stations_total"] > len(stations), + "selection_rule": selection["selection_rule"], + } + return tool_result_ok("missing", "get_snapshot", data) + + +def handle_get_anomalies(args): + range_args = (args or {}).get("range") + if not range_args: + return tool_result_error("missing", "get_anomalies", "INVALID_RANGE", "Range is required") + from_ts = parse_dt(range_args.get("from")) + to_ts = parse_dt(range_args.get("to")) + code, message = validate_range(from_ts, to_ts, max_days=MAX_RANGE_DAYS_ANOMALIES) + if code: + return tool_result_error("missing", "get_anomalies", code, message) + types = (args or {}).get("types") or ["spike", "stuck"] + allowed_types = [t for t in types if t in ("spike", "stuck")] + if not allowed_types: + allowed_types = ["spike", "stuck"] + limit = int((args or {}).get("limit") or MAX_ANOMALIES) + limit = min(limit, MAX_ANOMALIES) + data = fetch_anomalies(from_ts, to_ts, limit, None, allowed_types) + return tool_result_ok("missing", "get_anomalies", data) + + +def handle_get_station_history(args): + range_args = (args or {}).get("range") + if not range_args: + return tool_result_error( + "missing", "get_station_history", "INVALID_RANGE", "Range is required" + ) + from_ts = parse_dt(range_args.get("from")) + to_ts = parse_dt(range_args.get("to")) + code, message = validate_range(from_ts, to_ts, max_days=MAX_RANGE_DAYS_HISTORY) + if code: + return tool_result_error("missing", "get_station_history", code, message) + station_id = (args or {}).get("station_id") + if station_id is None: + return tool_result_error( + "missing", "get_station_history", "INVALID_ARGS", "station_id is required" + ) + step_seconds = (args or {}).get("step_seconds") or MIN_HISTORY_STEP_SECONDS + data = fetch_station_history(int(station_id), from_ts, to_ts, int(step_seconds)) + return tool_result_ok("missing", "get_station_history", data) + + +def execute_tool_call(decision): + tool_id = decision.get("id") or f"call_{uuid.uuid4().hex[:8]}" + tool = decision.get("tool") + args = decision.get("args") or {} + if tool == "get_snapshot": + result = handle_get_snapshot(args) + elif tool == "get_anomalies": + result = handle_get_anomalies(args) + elif tool == "get_station_history": + result = handle_get_station_history(args) + else: + result = tool_result_error(tool_id, tool, "INVALID_TOOL", "Tool not supported") + result["id"] = tool_id + result["tool"] = tool + return result + + +def build_answer( + message, + message_type, + snapshot_json=None, + tool_result=None, + anomalies_brief=None, + anomalies_mode=None, +): + messages = [{"role": "system", "content": ANSWER_PROMPT}] + req_type = (message_type or "unknown").upper() + header = f"REQUEST_TYPE: {req_type}\nQUESTION: {message}" + if anomalies_mode: + header = f"{header}\nANOMALIES_MODE: {anomalies_mode}" + messages.append( + { + "role": "user", + "content": header, + } + ) + if snapshot_json: + messages.append( + { + "role": "user", + "content": "SNAPSHOT_JSON:\n```json\n" + snapshot_json + "\n```", + } + ) + if tool_result is not None: + tool_json = json.dumps(tool_result, ensure_ascii=False) + messages.append( + { + "role": "user", + "content": "TOOL_RESULT:\n```json\n" + tool_json + "\n```", + } + ) + if anomalies_brief is not None: + brief_json = json.dumps(anomalies_brief, ensure_ascii=False) + messages.append( + { + "role": "user", + "content": "ANOMALIES_BRIEF:\n```json\n" + brief_json + "\n```", + } + ) + return call_llm(messages, temperature=0.0, max_tokens=512) + + +def build_trace_payload( + message, + request_type, + decision, + snapshot, + snapshot_llm, + tool_result, + tool_result_llm, + anomalies_brief=None, + anomalies_mode=None, + period=None, +): + if request_type != "eco": + return None + llm_input = {} + if anomalies_brief is not None: + llm_input["anomalies_brief"] = anomalies_brief + if anomalies_mode: + llm_input["anomalies_mode"] = anomalies_mode + else: + if snapshot_llm is not None: + llm_input["snapshot"] = snapshot_llm + if tool_result_llm is not None: + llm_input["tool_result"] = tool_result_llm + raw_json = tool_result if tool_result is not None else snapshot + return { + "trace_id": str(uuid.uuid4()), + "request_type": request_type, + "question": message, + "router": decision, + "llm_input": llm_input if llm_input else None, + "raw_json": raw_json, + "period": period, + } + + +@app.get("/health") +def health(): + return {"ok": True} + + +@app.get("/aip/waqi/summary") +def waqi_summary( + _auth: None = Depends(require_api_key), + from_ts: str | None = Query(default=None, alias="from"), + to_ts: str | None = Query(default=None, alias="to"), +): + try: + to_dt = parse_dt(to_ts) or datetime.now(timezone.utc) + from_dt = parse_dt(from_ts) or (to_dt - timedelta(hours=24)) + if from_dt > to_dt: + raise HTTPException(status_code=400, detail="'from' must be <= 'to'") + return fetch_summary(to_dt, from_dt, to_dt) + except RuntimeError as exc: + raise HTTPException(status_code=500, detail=str(exc)) from exc + + +@app.get("/aip/waqi/anomalies") +def waqi_anomalies( + _auth: None = Depends(require_api_key), + from_ts: str | None = Query(default=None, alias="from"), + to_ts: str | None = Query(default=None, alias="to"), + limit: int = Query(default=200, ge=1, le=1000), + station_id: int | None = Query(default=None), + anomaly_type: str | None = Query(default=None, alias="type"), +): + try: + to_dt = parse_dt(to_ts) or datetime.now(timezone.utc) + from_dt = parse_dt(from_ts) or (to_dt - timedelta(hours=24)) + if from_dt > to_dt: + raise HTTPException(status_code=400, detail="'from' must be <= 'to'") + return fetch_anomalies(from_dt, to_dt, limit, station_id, anomaly_type) + except RuntimeError as exc: + raise HTTPException(status_code=500, detail=str(exc)) from exc + + +@app.get("/aip/waqi/stations") +def waqi_stations( + _auth: None = Depends(require_api_key), +): + try: + now = datetime.now(timezone.utc) + return { + "now": dt_iso(now), + "windows": { + "ingested_minutes": INGESTED_WINDOW_MINUTES, + "observed_fresh_minutes": OBSERVED_FRESH_MINUTES, + "observed_recent_hours": OBSERVED_RECENT_HOURS, + }, + "items": fetch_stations(now), + } + except RuntimeError as exc: + raise HTTPException(status_code=500, detail=str(exc)) from exc + + +@app.get("/aip/waqi/history") +def waqi_history( + _auth: None = Depends(require_api_key), + date: str = Query(...), + since: str | None = Query(default=None), +): + try: + day = parse_date(date) + if day is None: + raise HTTPException(status_code=400, detail="'date' is required") + from_dt, to_dt = day_bounds_utc(day) + since_dt = parse_dt(since) if since else None + items = fetch_history(from_dt, to_dt, since_dt) + return { + "date": date, + "range": {"from": dt_iso(from_dt), "to": dt_iso(to_dt)}, + "items": items, + } + except RuntimeError as exc: + raise HTTPException(status_code=500, detail=str(exc)) from exc + + +@app.get("/aip/waqi/history_bounds") +def waqi_history_bounds( + _auth: None = Depends(require_api_key), +): + try: + min_ts, max_ts = fetch_history_bounds() + return { + "tz": UI_TZ, + "min_date": local_date_key(min_ts), + "max_date": local_date_key(max_ts), + } + except RuntimeError as exc: + raise HTTPException(status_code=500, detail=str(exc)) from exc + + +@app.get("/aip/waqi/report") +def waqi_report(): + return {} + + +@app.post("/llm/chat") +def llm_chat(payload: dict = Body(...)): + message = str(payload.get("message") or "").strip() + if not message: + raise HTTPException(status_code=400, detail="'message' is required") + mode = payload.get("mode") or "live" + range_payload = payload.get("range") or {} + from_raw = payload.get("from") or range_payload.get("from") + to_raw = payload.get("to") or range_payload.get("to") + try: + message_type = classify_message(message) + to_dt = parse_dt(to_raw) or datetime.now(timezone.utc) + from_dt = parse_dt(from_raw) or (to_dt - timedelta(hours=24)) + if from_dt > to_dt: + raise HTTPException(status_code=400, detail="'from' must be <= 'to'") + station_focus = payload.get("station_focus") or payload.get("station_id") + if station_focus is not None: + try: + station_focus = int(station_focus) + except (TypeError, ValueError): + station_focus = None + station_focus = station_focus or extract_station_id(message) + now = datetime.now(timezone.utc) + snapshot = build_snapshot( + now, + from_dt, + to_dt, + mode, + station_focus, + MAX_STATIONS_IN_SNAPSHOT, + ) + snapshot_llm = localize_llm_times(snapshot) + snapshot_json = json.dumps(snapshot, ensure_ascii=False) + snapshot_llm_json = json.dumps(snapshot_llm, ensure_ascii=False) + decision = run_router(snapshot_json, message) + anomalies_brief = None + anomalies_mode = None + effective_type = (decision.get("request_type") or message_type or "eco").lower() + if effective_type in ("smalltalk", "meta"): + decision = { + "type": "no_tool", + "reason": "no_tool_for_smalltalk_or_meta", + "request_type": effective_type, + } + answer = build_answer(message, effective_type) + payload = { + "request_id": snapshot["request_id"], + "router": decision, + "tool_result": None, + "answer": answer, + "period": None, + } + return JSONResponse(payload, media_type="application/json; charset=utf-8") + message_type = "eco" + decision = apply_fallbacks(decision, message, snapshot, station_focus, message_type) + decision["request_type"] = "eco" + if decision["type"] == "tool_call_v1" and decision.get("tool") == "get_anomalies": + args = decision.get("args") or {} + if not isinstance(args, dict): + args = {} + if not args.get("range"): + args["range"] = snapshot_range_args(snapshot) + if "limit" not in args and "max_anomalies" in args: + try: + args["limit"] = int(args.get("max_anomalies")) + except (TypeError, ValueError): + pass + decision["args"] = args + decision = sanitize_tool_call(decision, station_focus, snapshot) + tool_result = None + if decision["type"] == "tool_call_v1": + tool_result = execute_tool_call(decision) + tool_result_llm = localize_llm_times(tool_result) if tool_result else None + if tool_result and tool_result.get("ok") is False: + answer = format_tool_error(tool_result) + elif tool_result and tool_result.get("ok") and tool_result.get("tool") == "get_anomalies": + items = (tool_result.get("data") or {}).get("items") or [] + if not items: + answer = ( + "За выбранный период аномалий не найдено. " + "Можно проверить 24 часа / 3 дня / другую станцию." + ) + else: + brief = build_anomalies_brief(tool_result, top_n=MAX_ANOMALIES_BRIEF) + anomalies_brief = brief + if wants_anomaly_full_list(message): + anomalies_mode = "expand" + full_list = format_anomalies_full_list( + tool_result, + max_items=MAX_ANOMALIES_FULL_LIST, + chrono=wants_anomaly_chrono(message), + ) + intro = build_answer( + message, + message_type, + anomalies_brief=brief, + anomalies_mode="expand", + ) + answer = f"{intro}\n{full_list}".strip() + else: + anomalies_mode = "brief" + answer = build_answer( + message, + message_type, + anomalies_brief=brief, + anomalies_mode="brief", + ) + elif tool_result_is_no_data(tool_result): + answer = "нет данных" + else: + answer = build_answer(message, message_type, snapshot_llm_json, tool_result_llm) + answer = strip_iso_period_lines(answer) + period = build_period_payload(snapshot, tool_result) + trace_payload = build_trace_payload( + message, + "eco", + decision, + snapshot, + snapshot_llm, + tool_result, + tool_result_llm, + anomalies_brief=anomalies_brief, + anomalies_mode=anomalies_mode, + period=period, + ) + payload = { + "request_id": snapshot["request_id"], + "router": decision, + "tool_result": tool_result, + "answer": answer, + "period": period, + "trace_payload": trace_payload, + } + return JSONResponse(payload, media_type="application/json; charset=utf-8") + except RuntimeError as exc: + raise HTTPException(status_code=500, detail=str(exc)) from exc diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/api/requirements.txt b/docs/ADDRESS/tz/1/eco-aip-backend/api/requirements.txt new file mode 100644 index 0000000..838d61d --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/api/requirements.txt @@ -0,0 +1,4 @@ +fastapi==0.110.0 +uvicorn==0.27.1 +psycopg2-binary==2.9.9 +httpx==0.27.0 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/PG_VERSION b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/PG_VERSION new file mode 100644 index 0000000..8351c19 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/PG_VERSION @@ -0,0 +1 @@ +14 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/112 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/112 new file mode 100644 index 0000000..21db514 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/112 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/113 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/113 new file mode 100644 index 0000000..3f06e2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/113 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1247 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1247 new file mode 100644 index 0000000..31fd219 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1247 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1247_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1247_fsm new file mode 100644 index 0000000..0e4086f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1247_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1247_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1247_vm new file mode 100644 index 0000000..48f614f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1247_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1249 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1249 new file mode 100644 index 0000000..14029ce Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1249 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1249_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1249_fsm new file mode 100644 index 0000000..1f8868d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1249_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1249_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1249_vm new file mode 100644 index 0000000..e6a746d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1249_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1255 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1255 new file mode 100644 index 0000000..feed1a3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1255 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1255_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1255_fsm new file mode 100644 index 0000000..b730b34 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1255_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1255_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1255_vm new file mode 100644 index 0000000..18f07f5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1255_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1259 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1259 new file mode 100644 index 0000000..dacdf6b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1259 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1259_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1259_fsm new file mode 100644 index 0000000..3d17e63 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1259_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1259_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1259_vm new file mode 100644 index 0000000..673850d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1259_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13641 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13641 new file mode 100644 index 0000000..254e77d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13641 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13641_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13641_fsm new file mode 100644 index 0000000..dc87bf4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13641_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13641_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13641_vm new file mode 100644 index 0000000..c802431 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13641_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13644 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13644 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13645 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13645 new file mode 100644 index 0000000..e1dc37a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13645 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13646 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13646 new file mode 100644 index 0000000..872daec Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13646 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13646_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13646_fsm new file mode 100644 index 0000000..70d16ce Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13646_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13646_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13646_vm new file mode 100644 index 0000000..34fe414 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13646_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13649 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13649 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13650 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13650 new file mode 100644 index 0000000..e6c48cd Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13650 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13651 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13651 new file mode 100644 index 0000000..623abf6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13651 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13651_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13651_fsm new file mode 100644 index 0000000..d388044 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13651_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13651_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13651_vm new file mode 100644 index 0000000..346dac7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13651_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13654 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13654 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13655 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13655 new file mode 100644 index 0000000..8552798 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13655 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13656 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13656 new file mode 100644 index 0000000..2f20bf7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13656 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13656_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13656_fsm new file mode 100644 index 0000000..a836ddf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13656_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13656_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13656_vm new file mode 100644 index 0000000..9715d8b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13656_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13659 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13659 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13660 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13660 new file mode 100644 index 0000000..2c52783 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/13660 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1417 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1417 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1418 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/1418 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/174 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/174 new file mode 100644 index 0000000..6312b18 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/174 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/175 new file mode 100644 index 0000000..0f504d0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/175 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2187 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2187 new file mode 100644 index 0000000..8298625 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2187 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2224 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2224 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2228 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2228 new file mode 100644 index 0000000..da192ed Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2228 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2328 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2328 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2336 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2336 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2337 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2337 new file mode 100644 index 0000000..06345c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2337 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2579 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2579 new file mode 100644 index 0000000..2d189d9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2579 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2600 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2600 new file mode 100644 index 0000000..827b5c2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2600 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2600_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2600_fsm new file mode 100644 index 0000000..3f8f408 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2600_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2600_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2600_vm new file mode 100644 index 0000000..5c965cc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2600_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2601 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2601 new file mode 100644 index 0000000..d8001c8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2601 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2601_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2601_fsm new file mode 100644 index 0000000..d388044 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2601_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2601_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2601_vm new file mode 100644 index 0000000..776e6a4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2601_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2602 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2602 new file mode 100644 index 0000000..4a27b0a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2602 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2602_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2602_fsm new file mode 100644 index 0000000..23170d8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2602_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2602_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2602_vm new file mode 100644 index 0000000..0a93fa0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2602_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2603 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2603 new file mode 100644 index 0000000..d511af5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2603 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2603_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2603_fsm new file mode 100644 index 0000000..949bd18 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2603_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2603_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2603_vm new file mode 100644 index 0000000..c875bef Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2603_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2604 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2604 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2605 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2605 new file mode 100644 index 0000000..287bf96 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2605 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2605_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2605_fsm new file mode 100644 index 0000000..c7723da Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2605_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2605_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2605_vm new file mode 100644 index 0000000..a6f6844 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2605_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2606 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2606 new file mode 100644 index 0000000..3698458 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2606 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2606_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2606_fsm new file mode 100644 index 0000000..37bfa7e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2606_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2606_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2606_vm new file mode 100644 index 0000000..3f122c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2606_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2607 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2607 new file mode 100644 index 0000000..bfad49a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2607 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2607_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2607_fsm new file mode 100644 index 0000000..80ac8b1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2607_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2607_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2607_vm new file mode 100644 index 0000000..7095b2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2607_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2608 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2608 new file mode 100644 index 0000000..1905e23 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2608 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2608_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2608_fsm new file mode 100644 index 0000000..8e746db Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2608_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2608_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2608_vm new file mode 100644 index 0000000..211d2ec Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2608_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2609 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2609 new file mode 100644 index 0000000..f1a8bc5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2609 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2609_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2609_fsm new file mode 100644 index 0000000..557f6a2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2609_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2609_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2609_vm new file mode 100644 index 0000000..557043b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2609_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2610 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2610 new file mode 100644 index 0000000..c9b7991 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2610 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2610_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2610_fsm new file mode 100644 index 0000000..39a3e89 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2610_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2610_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2610_vm new file mode 100644 index 0000000..4e63b84 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2610_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2611 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2611 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2612 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2612 new file mode 100644 index 0000000..a0bebaf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2612 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2612_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2612_fsm new file mode 100644 index 0000000..877976a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2612_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2612_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2612_vm new file mode 100644 index 0000000..ab3905d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2612_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2613 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2613 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2615 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2615 new file mode 100644 index 0000000..668f260 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2615 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2615_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2615_fsm new file mode 100644 index 0000000..d041693 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2615_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2615_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2615_vm new file mode 100644 index 0000000..542513b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2615_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2616 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2616 new file mode 100644 index 0000000..0d60d79 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2616 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2616_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2616_fsm new file mode 100644 index 0000000..cb924c9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2616_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2616_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2616_vm new file mode 100644 index 0000000..25dc1f3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2616_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2617 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2617 new file mode 100644 index 0000000..8696551 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2617 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2617_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2617_fsm new file mode 100644 index 0000000..84060f4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2617_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2617_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2617_vm new file mode 100644 index 0000000..375465f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2617_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2618 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2618 new file mode 100644 index 0000000..71e3ce3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2618 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2618_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2618_fsm new file mode 100644 index 0000000..b92d2da Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2618_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2618_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2618_vm new file mode 100644 index 0000000..5319c4b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2618_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2619 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2619 new file mode 100644 index 0000000..d4c6b25 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2619 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2619_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2619_fsm new file mode 100644 index 0000000..9942029 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2619_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2619_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2619_vm new file mode 100644 index 0000000..5bbade8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2619_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2620 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2620 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2650 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2650 new file mode 100644 index 0000000..ebcc0c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2650 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2651 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2651 new file mode 100644 index 0000000..8841a67 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2651 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2652 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2652 new file mode 100644 index 0000000..11ee01d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2652 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2653 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2653 new file mode 100644 index 0000000..2b6951c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2653 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2654 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2654 new file mode 100644 index 0000000..68403a4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2654 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2655 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2655 new file mode 100644 index 0000000..8b9aa94 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2655 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2656 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2656 new file mode 100644 index 0000000..ff35981 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2656 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2657 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2657 new file mode 100644 index 0000000..1270286 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2657 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2658 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2658 new file mode 100644 index 0000000..6e20562 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2658 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2659 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2659 new file mode 100644 index 0000000..bb5f26d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2659 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2660 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2660 new file mode 100644 index 0000000..8862e97 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2660 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2661 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2661 new file mode 100644 index 0000000..8bb39cc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2661 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2662 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2662 new file mode 100644 index 0000000..f75176f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2662 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2663 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2663 new file mode 100644 index 0000000..214be26 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2663 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2664 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2664 new file mode 100644 index 0000000..9f2b89b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2664 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2665 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2665 new file mode 100644 index 0000000..1688e1b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2665 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2666 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2666 new file mode 100644 index 0000000..b6b3e08 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2666 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2667 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2667 new file mode 100644 index 0000000..028100f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2667 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2668 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2668 new file mode 100644 index 0000000..17439a2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2668 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2669 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2669 new file mode 100644 index 0000000..d8d8569 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2669 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2670 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2670 new file mode 100644 index 0000000..97e2033 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2670 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2673 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2673 new file mode 100644 index 0000000..bf7e318 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2673 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2673_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2673_fsm new file mode 100644 index 0000000..2c8d238 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2673_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2674 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2674 new file mode 100644 index 0000000..7fbe07b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2674 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2674_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2674_fsm new file mode 100644 index 0000000..ed74869 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2674_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2675 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2675 new file mode 100644 index 0000000..1f94bee Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2675 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2678 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2678 new file mode 100644 index 0000000..04869e4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2678 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2679 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2679 new file mode 100644 index 0000000..0a826df Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2679 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2680 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2680 new file mode 100644 index 0000000..5fd8851 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2680 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2681 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2681 new file mode 100644 index 0000000..8939840 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2681 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2682 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2682 new file mode 100644 index 0000000..eb0cad9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2682 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2683 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2683 new file mode 100644 index 0000000..8187c58 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2683 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2684 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2684 new file mode 100644 index 0000000..430e54f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2684 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2685 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2685 new file mode 100644 index 0000000..e9b8384 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2685 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2686 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2686 new file mode 100644 index 0000000..37beb74 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2686 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2687 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2687 new file mode 100644 index 0000000..20a2d34 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2687 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2688 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2688 new file mode 100644 index 0000000..4cd4907 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2688 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2689 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2689 new file mode 100644 index 0000000..4b12dea Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2689 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2690 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2690 new file mode 100644 index 0000000..f3114ae Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2690 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2691 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2691 new file mode 100644 index 0000000..f52cd3e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2691 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2692 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2692 new file mode 100644 index 0000000..8b7a0e1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2692 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2693 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2693 new file mode 100644 index 0000000..f57dc6c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2693 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2696 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2696 new file mode 100644 index 0000000..9e74939 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2696 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2699 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2699 new file mode 100644 index 0000000..14488bf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2699 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2701 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2701 new file mode 100644 index 0000000..8664200 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2701 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2702 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2702 new file mode 100644 index 0000000..750b4b6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2702 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2703 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2703 new file mode 100644 index 0000000..8f6d874 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2703 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2704 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2704 new file mode 100644 index 0000000..10c8258 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2704 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2753 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2753 new file mode 100644 index 0000000..3c16dff Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2753 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2753_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2753_fsm new file mode 100644 index 0000000..642bce3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2753_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2753_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2753_vm new file mode 100644 index 0000000..d62a836 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2753_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2754 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2754 new file mode 100644 index 0000000..0c2ef54 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2754 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2755 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2755 new file mode 100644 index 0000000..5e7143b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2755 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2756 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2756 new file mode 100644 index 0000000..0758e05 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2756 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2757 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2757 new file mode 100644 index 0000000..80dd62a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2757 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2830 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2830 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2831 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2831 new file mode 100644 index 0000000..61046f3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2831 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2832 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2832 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2833 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2833 new file mode 100644 index 0000000..fb3c12d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2833 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2834 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2834 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2835 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2835 new file mode 100644 index 0000000..3c05130 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2835 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2836 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2836 new file mode 100644 index 0000000..a2910fb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2836 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2836_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2836_fsm new file mode 100644 index 0000000..4066e1e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2836_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2836_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2836_vm new file mode 100644 index 0000000..abecba7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2836_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2837 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2837 new file mode 100644 index 0000000..acaf845 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2837 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2838 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2838 new file mode 100644 index 0000000..87e1120 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2838 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2838_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2838_fsm new file mode 100644 index 0000000..cf21f89 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2838_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2838_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2838_vm new file mode 100644 index 0000000..9e86ed4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2838_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2839 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2839 new file mode 100644 index 0000000..bacac83 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2839 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2840 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2840 new file mode 100644 index 0000000..596dfff Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2840 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2840_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2840_fsm new file mode 100644 index 0000000..cc54fcb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2840_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2840_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2840_vm new file mode 100644 index 0000000..03fe359 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2840_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2841 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2841 new file mode 100644 index 0000000..b79c927 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2841 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2995 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2995 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2996 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2996 new file mode 100644 index 0000000..94563e7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/2996 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3079 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3079 new file mode 100644 index 0000000..bbf4066 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3079 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3079_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3079_fsm new file mode 100644 index 0000000..7732d22 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3079_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3079_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3079_vm new file mode 100644 index 0000000..8958922 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3079_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3080 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3080 new file mode 100644 index 0000000..6eeaa4a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3080 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3081 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3081 new file mode 100644 index 0000000..edf2ed4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3081 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3085 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3085 new file mode 100644 index 0000000..3c4cbb3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3085 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3118 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3118 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3119 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3119 new file mode 100644 index 0000000..c0d08b7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3119 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3164 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3164 new file mode 100644 index 0000000..be268e6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3164 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3256 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3256 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3257 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3257 new file mode 100644 index 0000000..85937d2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3257 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3258 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3258 new file mode 100644 index 0000000..5f252a3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3258 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3350 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3350 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3351 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3351 new file mode 100644 index 0000000..0aecbb3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3351 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3379 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3379 new file mode 100644 index 0000000..9cc56f1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3379 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3380 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3380 new file mode 100644 index 0000000..896db3e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3380 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3381 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3381 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3394 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3394 new file mode 100644 index 0000000..a56aa6d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3394 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3394_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3394_fsm new file mode 100644 index 0000000..f8d6070 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3394_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3394_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3394_vm new file mode 100644 index 0000000..c87a7b5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3394_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3395 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3395 new file mode 100644 index 0000000..9a2d70c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3395 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3429 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3429 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3430 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3430 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3431 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3431 new file mode 100644 index 0000000..8a6528d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3431 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3433 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3433 new file mode 100644 index 0000000..0c4736b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3433 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3439 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3439 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3440 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3440 new file mode 100644 index 0000000..1174715 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3440 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3455 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3455 new file mode 100644 index 0000000..22dc902 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3455 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3456 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3456 new file mode 100644 index 0000000..afca583 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3456 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3456_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3456_fsm new file mode 100644 index 0000000..308a42f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3456_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3456_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3456_vm new file mode 100644 index 0000000..f70ad69 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3456_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3466 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3466 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3467 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3467 new file mode 100644 index 0000000..020deba Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3467 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3468 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3468 new file mode 100644 index 0000000..a37352a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3468 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3501 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3501 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3502 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3502 new file mode 100644 index 0000000..94e5e8e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3502 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3503 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3503 new file mode 100644 index 0000000..df8e743 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3503 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3534 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3534 new file mode 100644 index 0000000..98d4854 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3534 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3541 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3541 new file mode 100644 index 0000000..40869ad Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3541 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3541_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3541_fsm new file mode 100644 index 0000000..a3a2de4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3541_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3541_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3541_vm new file mode 100644 index 0000000..4b9c711 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3541_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3542 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3542 new file mode 100644 index 0000000..ee21b6a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3542 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3574 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3574 new file mode 100644 index 0000000..418bbca Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3574 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3575 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3575 new file mode 100644 index 0000000..6addf86 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3575 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3576 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3576 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3596 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3596 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3597 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3597 new file mode 100644 index 0000000..71d2820 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3597 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3598 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3598 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3599 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3599 new file mode 100644 index 0000000..20c4969 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3599 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3600 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3600 new file mode 100644 index 0000000..3c7a21b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3600 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3600_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3600_fsm new file mode 100644 index 0000000..cebec19 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3600_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3600_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3600_vm new file mode 100644 index 0000000..3c90651 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3600_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3601 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3601 new file mode 100644 index 0000000..04c846e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3601 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3601_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3601_fsm new file mode 100644 index 0000000..7732d22 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3601_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3601_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3601_vm new file mode 100644 index 0000000..f178e59 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3601_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3602 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3602 new file mode 100644 index 0000000..6fa54cf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3602 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3602_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3602_fsm new file mode 100644 index 0000000..d7897de Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3602_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3602_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3602_vm new file mode 100644 index 0000000..b635a1f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3602_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3603 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3603 new file mode 100644 index 0000000..c95eefa Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3603 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3603_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3603_fsm new file mode 100644 index 0000000..c28dd4f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3603_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3603_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3603_vm new file mode 100644 index 0000000..01260ef Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3603_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3604 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3604 new file mode 100644 index 0000000..ce4c466 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3604 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3605 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3605 new file mode 100644 index 0000000..038efba Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3605 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3606 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3606 new file mode 100644 index 0000000..de60e2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3606 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3607 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3607 new file mode 100644 index 0000000..ff53735 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3607 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3608 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3608 new file mode 100644 index 0000000..f68abf8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3608 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3609 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3609 new file mode 100644 index 0000000..9b45e30 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3609 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3712 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3712 new file mode 100644 index 0000000..932f137 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3712 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3764 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3764 new file mode 100644 index 0000000..778b30a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3764 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3764_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3764_fsm new file mode 100644 index 0000000..f64db4d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3764_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3764_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3764_vm new file mode 100644 index 0000000..5e07ce2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3764_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3766 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3766 new file mode 100644 index 0000000..4a17862 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3766 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3767 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3767 new file mode 100644 index 0000000..e3ed16d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3767 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3997 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3997 new file mode 100644 index 0000000..3832f55 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/3997 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4143 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4143 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4144 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4144 new file mode 100644 index 0000000..178af33 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4144 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4145 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4145 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4146 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4146 new file mode 100644 index 0000000..bb603a6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4146 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4147 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4147 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4148 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4148 new file mode 100644 index 0000000..87c330b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4148 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4149 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4149 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4150 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4150 new file mode 100644 index 0000000..2085995 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4150 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4151 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4151 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4152 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4152 new file mode 100644 index 0000000..23407ab Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4152 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4153 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4153 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4154 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4154 new file mode 100644 index 0000000..edaed60 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4154 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4155 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4155 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4156 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4156 new file mode 100644 index 0000000..f0c50e4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4156 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4157 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4157 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4158 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4158 new file mode 100644 index 0000000..d45296c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4158 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4159 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4159 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4160 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4160 new file mode 100644 index 0000000..e0fd4e1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4160 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4163 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4163 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4164 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4164 new file mode 100644 index 0000000..9a3435b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4164 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4165 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4165 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4166 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4166 new file mode 100644 index 0000000..be076db Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4166 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4167 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4167 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4168 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4168 new file mode 100644 index 0000000..976615c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4168 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4169 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4169 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4170 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4170 new file mode 100644 index 0000000..f33abe0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4170 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4171 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4171 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4172 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4172 new file mode 100644 index 0000000..bfa5606 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4172 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4173 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4173 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4174 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4174 new file mode 100644 index 0000000..8a80490 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/4174 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/5002 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/5002 new file mode 100644 index 0000000..32af7a1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/5002 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/548 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/548 new file mode 100644 index 0000000..9f21947 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/548 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/549 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/549 new file mode 100644 index 0000000..68efb3f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/549 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6102 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6102 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6104 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6104 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6106 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6106 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6110 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6110 new file mode 100644 index 0000000..536b80d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6110 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6111 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6111 new file mode 100644 index 0000000..3d22c94 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6111 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6112 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6112 new file mode 100644 index 0000000..9e47d5c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6112 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6113 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6113 new file mode 100644 index 0000000..4e57f5b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6113 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6117 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6117 new file mode 100644 index 0000000..296b14e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6117 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6175 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6176 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6176 new file mode 100644 index 0000000..a349a04 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/6176 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/826 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/826 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/827 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/827 new file mode 100644 index 0000000..86db9fe Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/827 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/828 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/828 new file mode 100644 index 0000000..4a52299 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/828 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/PG_VERSION b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/PG_VERSION new file mode 100644 index 0000000..8351c19 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/PG_VERSION @@ -0,0 +1 @@ +14 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/pg_filenode.map b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/pg_filenode.map new file mode 100644 index 0000000..193d78f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/1/pg_filenode.map differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/112 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/112 new file mode 100644 index 0000000..21db514 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/112 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/113 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/113 new file mode 100644 index 0000000..3f06e2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/113 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1247 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1247 new file mode 100644 index 0000000..31fd219 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1247 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1247_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1247_fsm new file mode 100644 index 0000000..0e4086f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1247_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1247_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1247_vm new file mode 100644 index 0000000..48f614f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1247_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1249 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1249 new file mode 100644 index 0000000..14029ce Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1249 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1249_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1249_fsm new file mode 100644 index 0000000..1f8868d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1249_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1249_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1249_vm new file mode 100644 index 0000000..e6a746d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1249_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1255 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1255 new file mode 100644 index 0000000..feed1a3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1255 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1255_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1255_fsm new file mode 100644 index 0000000..b730b34 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1255_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1255_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1255_vm new file mode 100644 index 0000000..18f07f5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1255_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1259 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1259 new file mode 100644 index 0000000..ad13881 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1259 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1259_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1259_fsm new file mode 100644 index 0000000..3d17e63 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1259_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1259_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1259_vm new file mode 100644 index 0000000..673850d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1259_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13641 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13641 new file mode 100644 index 0000000..254e77d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13641 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13641_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13641_fsm new file mode 100644 index 0000000..dc87bf4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13641_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13641_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13641_vm new file mode 100644 index 0000000..c802431 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13641_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13644 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13644 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13645 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13645 new file mode 100644 index 0000000..e1dc37a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13645 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13646 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13646 new file mode 100644 index 0000000..872daec Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13646 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13646_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13646_fsm new file mode 100644 index 0000000..70d16ce Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13646_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13646_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13646_vm new file mode 100644 index 0000000..34fe414 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13646_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13649 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13649 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13650 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13650 new file mode 100644 index 0000000..e6c48cd Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13650 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13651 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13651 new file mode 100644 index 0000000..623abf6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13651 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13651_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13651_fsm new file mode 100644 index 0000000..d388044 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13651_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13651_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13651_vm new file mode 100644 index 0000000..346dac7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13651_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13654 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13654 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13655 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13655 new file mode 100644 index 0000000..8552798 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13655 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13656 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13656 new file mode 100644 index 0000000..2f20bf7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13656 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13656_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13656_fsm new file mode 100644 index 0000000..a836ddf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13656_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13656_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13656_vm new file mode 100644 index 0000000..9715d8b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13656_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13659 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13659 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13660 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13660 new file mode 100644 index 0000000..2c52783 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/13660 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1417 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1417 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1418 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/1418 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/174 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/174 new file mode 100644 index 0000000..6312b18 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/174 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/175 new file mode 100644 index 0000000..0f504d0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/175 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2187 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2187 new file mode 100644 index 0000000..8298625 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2187 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2224 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2224 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2228 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2228 new file mode 100644 index 0000000..da192ed Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2228 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2328 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2328 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2336 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2336 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2337 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2337 new file mode 100644 index 0000000..06345c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2337 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2579 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2579 new file mode 100644 index 0000000..2d189d9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2579 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2600 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2600 new file mode 100644 index 0000000..827b5c2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2600 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2600_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2600_fsm new file mode 100644 index 0000000..3f8f408 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2600_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2600_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2600_vm new file mode 100644 index 0000000..5c965cc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2600_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2601 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2601 new file mode 100644 index 0000000..d8001c8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2601 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2601_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2601_fsm new file mode 100644 index 0000000..d388044 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2601_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2601_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2601_vm new file mode 100644 index 0000000..776e6a4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2601_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2602 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2602 new file mode 100644 index 0000000..4a27b0a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2602 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2602_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2602_fsm new file mode 100644 index 0000000..23170d8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2602_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2602_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2602_vm new file mode 100644 index 0000000..0a93fa0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2602_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2603 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2603 new file mode 100644 index 0000000..d511af5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2603 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2603_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2603_fsm new file mode 100644 index 0000000..949bd18 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2603_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2603_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2603_vm new file mode 100644 index 0000000..c875bef Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2603_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2604 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2604 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2605 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2605 new file mode 100644 index 0000000..287bf96 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2605 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2605_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2605_fsm new file mode 100644 index 0000000..c7723da Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2605_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2605_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2605_vm new file mode 100644 index 0000000..a6f6844 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2605_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2606 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2606 new file mode 100644 index 0000000..3698458 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2606 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2606_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2606_fsm new file mode 100644 index 0000000..37bfa7e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2606_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2606_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2606_vm new file mode 100644 index 0000000..3f122c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2606_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2607 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2607 new file mode 100644 index 0000000..bfad49a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2607 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2607_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2607_fsm new file mode 100644 index 0000000..80ac8b1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2607_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2607_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2607_vm new file mode 100644 index 0000000..7095b2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2607_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2608 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2608 new file mode 100644 index 0000000..1905e23 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2608 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2608_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2608_fsm new file mode 100644 index 0000000..8e746db Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2608_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2608_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2608_vm new file mode 100644 index 0000000..211d2ec Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2608_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2609 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2609 new file mode 100644 index 0000000..f1a8bc5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2609 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2609_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2609_fsm new file mode 100644 index 0000000..557f6a2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2609_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2609_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2609_vm new file mode 100644 index 0000000..557043b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2609_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2610 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2610 new file mode 100644 index 0000000..c9b7991 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2610 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2610_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2610_fsm new file mode 100644 index 0000000..39a3e89 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2610_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2610_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2610_vm new file mode 100644 index 0000000..4e63b84 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2610_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2611 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2611 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2612 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2612 new file mode 100644 index 0000000..a0bebaf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2612 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2612_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2612_fsm new file mode 100644 index 0000000..877976a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2612_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2612_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2612_vm new file mode 100644 index 0000000..ab3905d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2612_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2613 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2613 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2615 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2615 new file mode 100644 index 0000000..668f260 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2615 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2615_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2615_fsm new file mode 100644 index 0000000..d041693 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2615_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2615_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2615_vm new file mode 100644 index 0000000..542513b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2615_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2616 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2616 new file mode 100644 index 0000000..0d60d79 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2616 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2616_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2616_fsm new file mode 100644 index 0000000..cb924c9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2616_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2616_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2616_vm new file mode 100644 index 0000000..25dc1f3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2616_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2617 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2617 new file mode 100644 index 0000000..8696551 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2617 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2617_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2617_fsm new file mode 100644 index 0000000..84060f4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2617_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2617_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2617_vm new file mode 100644 index 0000000..375465f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2617_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2618 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2618 new file mode 100644 index 0000000..71e3ce3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2618 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2618_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2618_fsm new file mode 100644 index 0000000..b92d2da Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2618_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2618_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2618_vm new file mode 100644 index 0000000..5319c4b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2618_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2619 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2619 new file mode 100644 index 0000000..d4c6b25 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2619 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2619_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2619_fsm new file mode 100644 index 0000000..9942029 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2619_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2619_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2619_vm new file mode 100644 index 0000000..5bbade8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2619_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2620 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2620 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2650 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2650 new file mode 100644 index 0000000..ebcc0c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2650 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2651 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2651 new file mode 100644 index 0000000..8841a67 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2651 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2652 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2652 new file mode 100644 index 0000000..11ee01d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2652 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2653 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2653 new file mode 100644 index 0000000..2b6951c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2653 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2654 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2654 new file mode 100644 index 0000000..68403a4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2654 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2655 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2655 new file mode 100644 index 0000000..8b9aa94 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2655 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2656 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2656 new file mode 100644 index 0000000..ff35981 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2656 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2657 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2657 new file mode 100644 index 0000000..1270286 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2657 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2658 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2658 new file mode 100644 index 0000000..6e20562 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2658 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2659 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2659 new file mode 100644 index 0000000..bb5f26d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2659 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2660 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2660 new file mode 100644 index 0000000..8862e97 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2660 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2661 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2661 new file mode 100644 index 0000000..8bb39cc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2661 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2662 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2662 new file mode 100644 index 0000000..f75176f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2662 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2663 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2663 new file mode 100644 index 0000000..214be26 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2663 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2664 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2664 new file mode 100644 index 0000000..9f2b89b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2664 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2665 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2665 new file mode 100644 index 0000000..1688e1b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2665 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2666 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2666 new file mode 100644 index 0000000..b6b3e08 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2666 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2667 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2667 new file mode 100644 index 0000000..028100f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2667 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2668 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2668 new file mode 100644 index 0000000..17439a2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2668 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2669 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2669 new file mode 100644 index 0000000..d8d8569 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2669 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2670 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2670 new file mode 100644 index 0000000..97e2033 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2670 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2673 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2673 new file mode 100644 index 0000000..bf7e318 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2673 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2673_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2673_fsm new file mode 100644 index 0000000..2c8d238 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2673_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2674 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2674 new file mode 100644 index 0000000..7fbe07b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2674 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2674_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2674_fsm new file mode 100644 index 0000000..ed74869 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2674_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2675 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2675 new file mode 100644 index 0000000..1f94bee Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2675 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2678 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2678 new file mode 100644 index 0000000..04869e4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2678 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2679 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2679 new file mode 100644 index 0000000..0a826df Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2679 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2680 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2680 new file mode 100644 index 0000000..5fd8851 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2680 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2681 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2681 new file mode 100644 index 0000000..8939840 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2681 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2682 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2682 new file mode 100644 index 0000000..eb0cad9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2682 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2683 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2683 new file mode 100644 index 0000000..8187c58 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2683 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2684 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2684 new file mode 100644 index 0000000..430e54f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2684 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2685 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2685 new file mode 100644 index 0000000..e9b8384 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2685 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2686 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2686 new file mode 100644 index 0000000..37beb74 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2686 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2687 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2687 new file mode 100644 index 0000000..20a2d34 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2687 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2688 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2688 new file mode 100644 index 0000000..4cd4907 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2688 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2689 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2689 new file mode 100644 index 0000000..4b12dea Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2689 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2690 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2690 new file mode 100644 index 0000000..f3114ae Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2690 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2691 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2691 new file mode 100644 index 0000000..f52cd3e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2691 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2692 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2692 new file mode 100644 index 0000000..8b7a0e1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2692 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2693 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2693 new file mode 100644 index 0000000..f57dc6c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2693 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2696 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2696 new file mode 100644 index 0000000..9e74939 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2696 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2699 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2699 new file mode 100644 index 0000000..14488bf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2699 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2701 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2701 new file mode 100644 index 0000000..8664200 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2701 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2702 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2702 new file mode 100644 index 0000000..750b4b6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2702 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2703 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2703 new file mode 100644 index 0000000..8f6d874 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2703 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2704 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2704 new file mode 100644 index 0000000..10c8258 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2704 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2753 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2753 new file mode 100644 index 0000000..3c16dff Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2753 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2753_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2753_fsm new file mode 100644 index 0000000..642bce3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2753_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2753_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2753_vm new file mode 100644 index 0000000..d62a836 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2753_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2754 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2754 new file mode 100644 index 0000000..0c2ef54 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2754 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2755 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2755 new file mode 100644 index 0000000..5e7143b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2755 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2756 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2756 new file mode 100644 index 0000000..0758e05 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2756 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2757 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2757 new file mode 100644 index 0000000..80dd62a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2757 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2830 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2830 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2831 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2831 new file mode 100644 index 0000000..61046f3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2831 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2832 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2832 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2833 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2833 new file mode 100644 index 0000000..fb3c12d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2833 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2834 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2834 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2835 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2835 new file mode 100644 index 0000000..3c05130 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2835 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2836 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2836 new file mode 100644 index 0000000..a2910fb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2836 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2836_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2836_fsm new file mode 100644 index 0000000..4066e1e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2836_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2836_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2836_vm new file mode 100644 index 0000000..abecba7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2836_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2837 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2837 new file mode 100644 index 0000000..acaf845 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2837 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2838 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2838 new file mode 100644 index 0000000..87e1120 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2838 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2838_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2838_fsm new file mode 100644 index 0000000..cf21f89 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2838_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2838_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2838_vm new file mode 100644 index 0000000..9e86ed4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2838_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2839 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2839 new file mode 100644 index 0000000..bacac83 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2839 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2840 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2840 new file mode 100644 index 0000000..596dfff Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2840 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2840_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2840_fsm new file mode 100644 index 0000000..cc54fcb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2840_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2840_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2840_vm new file mode 100644 index 0000000..03fe359 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2840_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2841 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2841 new file mode 100644 index 0000000..b79c927 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2841 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2995 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2995 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2996 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2996 new file mode 100644 index 0000000..94563e7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/2996 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3079 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3079 new file mode 100644 index 0000000..bbf4066 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3079 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3079_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3079_fsm new file mode 100644 index 0000000..7732d22 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3079_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3079_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3079_vm new file mode 100644 index 0000000..8958922 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3079_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3080 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3080 new file mode 100644 index 0000000..6eeaa4a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3080 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3081 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3081 new file mode 100644 index 0000000..edf2ed4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3081 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3085 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3085 new file mode 100644 index 0000000..3c4cbb3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3085 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3118 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3118 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3119 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3119 new file mode 100644 index 0000000..c0d08b7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3119 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3164 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3164 new file mode 100644 index 0000000..be268e6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3164 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3256 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3256 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3257 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3257 new file mode 100644 index 0000000..85937d2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3257 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3258 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3258 new file mode 100644 index 0000000..5f252a3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3258 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3350 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3350 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3351 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3351 new file mode 100644 index 0000000..0aecbb3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3351 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3379 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3379 new file mode 100644 index 0000000..9cc56f1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3379 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3380 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3380 new file mode 100644 index 0000000..896db3e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3380 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3381 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3381 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3394 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3394 new file mode 100644 index 0000000..a56aa6d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3394 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3394_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3394_fsm new file mode 100644 index 0000000..f8d6070 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3394_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3394_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3394_vm new file mode 100644 index 0000000..c87a7b5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3394_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3395 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3395 new file mode 100644 index 0000000..9a2d70c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3395 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3429 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3429 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3430 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3430 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3431 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3431 new file mode 100644 index 0000000..8a6528d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3431 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3433 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3433 new file mode 100644 index 0000000..0c4736b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3433 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3439 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3439 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3440 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3440 new file mode 100644 index 0000000..1174715 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3440 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3455 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3455 new file mode 100644 index 0000000..22dc902 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3455 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3456 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3456 new file mode 100644 index 0000000..afca583 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3456 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3456_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3456_fsm new file mode 100644 index 0000000..308a42f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3456_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3456_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3456_vm new file mode 100644 index 0000000..f70ad69 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3456_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3466 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3466 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3467 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3467 new file mode 100644 index 0000000..020deba Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3467 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3468 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3468 new file mode 100644 index 0000000..a37352a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3468 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3501 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3501 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3502 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3502 new file mode 100644 index 0000000..94e5e8e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3502 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3503 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3503 new file mode 100644 index 0000000..df8e743 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3503 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3534 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3534 new file mode 100644 index 0000000..98d4854 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3534 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3541 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3541 new file mode 100644 index 0000000..40869ad Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3541 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3541_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3541_fsm new file mode 100644 index 0000000..a3a2de4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3541_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3541_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3541_vm new file mode 100644 index 0000000..4b9c711 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3541_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3542 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3542 new file mode 100644 index 0000000..ee21b6a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3542 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3574 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3574 new file mode 100644 index 0000000..418bbca Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3574 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3575 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3575 new file mode 100644 index 0000000..6addf86 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3575 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3576 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3576 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3596 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3596 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3597 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3597 new file mode 100644 index 0000000..71d2820 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3597 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3598 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3598 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3599 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3599 new file mode 100644 index 0000000..20c4969 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3599 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3600 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3600 new file mode 100644 index 0000000..3c7a21b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3600 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3600_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3600_fsm new file mode 100644 index 0000000..cebec19 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3600_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3600_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3600_vm new file mode 100644 index 0000000..3c90651 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3600_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3601 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3601 new file mode 100644 index 0000000..04c846e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3601 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3601_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3601_fsm new file mode 100644 index 0000000..7732d22 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3601_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3601_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3601_vm new file mode 100644 index 0000000..f178e59 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3601_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3602 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3602 new file mode 100644 index 0000000..6fa54cf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3602 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3602_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3602_fsm new file mode 100644 index 0000000..d7897de Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3602_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3602_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3602_vm new file mode 100644 index 0000000..b635a1f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3602_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3603 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3603 new file mode 100644 index 0000000..c95eefa Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3603 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3603_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3603_fsm new file mode 100644 index 0000000..c28dd4f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3603_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3603_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3603_vm new file mode 100644 index 0000000..01260ef Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3603_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3604 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3604 new file mode 100644 index 0000000..ce4c466 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3604 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3605 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3605 new file mode 100644 index 0000000..038efba Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3605 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3606 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3606 new file mode 100644 index 0000000..de60e2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3606 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3607 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3607 new file mode 100644 index 0000000..ff53735 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3607 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3608 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3608 new file mode 100644 index 0000000..f68abf8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3608 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3609 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3609 new file mode 100644 index 0000000..9b45e30 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3609 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3712 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3712 new file mode 100644 index 0000000..932f137 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3712 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3764 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3764 new file mode 100644 index 0000000..778b30a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3764 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3764_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3764_fsm new file mode 100644 index 0000000..f64db4d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3764_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3764_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3764_vm new file mode 100644 index 0000000..5e07ce2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3764_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3766 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3766 new file mode 100644 index 0000000..4a17862 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3766 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3767 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3767 new file mode 100644 index 0000000..e3ed16d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3767 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3997 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3997 new file mode 100644 index 0000000..3832f55 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/3997 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4143 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4143 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4144 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4144 new file mode 100644 index 0000000..178af33 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4144 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4145 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4145 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4146 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4146 new file mode 100644 index 0000000..bb603a6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4146 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4147 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4147 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4148 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4148 new file mode 100644 index 0000000..87c330b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4148 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4149 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4149 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4150 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4150 new file mode 100644 index 0000000..2085995 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4150 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4151 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4151 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4152 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4152 new file mode 100644 index 0000000..23407ab Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4152 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4153 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4153 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4154 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4154 new file mode 100644 index 0000000..edaed60 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4154 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4155 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4155 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4156 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4156 new file mode 100644 index 0000000..f0c50e4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4156 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4157 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4157 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4158 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4158 new file mode 100644 index 0000000..d45296c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4158 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4159 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4159 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4160 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4160 new file mode 100644 index 0000000..e0fd4e1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4160 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4163 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4163 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4164 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4164 new file mode 100644 index 0000000..9a3435b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4164 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4165 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4165 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4166 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4166 new file mode 100644 index 0000000..be076db Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4166 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4167 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4167 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4168 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4168 new file mode 100644 index 0000000..976615c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4168 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4169 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4169 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4170 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4170 new file mode 100644 index 0000000..f33abe0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4170 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4171 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4171 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4172 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4172 new file mode 100644 index 0000000..bfa5606 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4172 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4173 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4173 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4174 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4174 new file mode 100644 index 0000000..8a80490 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/4174 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/5002 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/5002 new file mode 100644 index 0000000..32af7a1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/5002 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/548 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/548 new file mode 100644 index 0000000..9f21947 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/548 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/549 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/549 new file mode 100644 index 0000000..68efb3f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/549 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6102 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6102 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6104 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6104 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6106 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6106 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6110 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6110 new file mode 100644 index 0000000..536b80d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6110 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6111 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6111 new file mode 100644 index 0000000..3d22c94 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6111 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6112 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6112 new file mode 100644 index 0000000..9e47d5c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6112 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6113 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6113 new file mode 100644 index 0000000..4e57f5b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6113 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6117 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6117 new file mode 100644 index 0000000..296b14e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6117 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6175 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6176 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6176 new file mode 100644 index 0000000..a349a04 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/6176 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/826 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/826 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/827 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/827 new file mode 100644 index 0000000..86db9fe Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/827 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/828 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/828 new file mode 100644 index 0000000..4a52299 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/828 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/PG_VERSION b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/PG_VERSION new file mode 100644 index 0000000..8351c19 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/PG_VERSION @@ -0,0 +1 @@ +14 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/pg_filenode.map b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/pg_filenode.map new file mode 100644 index 0000000..193d78f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13822/pg_filenode.map differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/112 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/112 new file mode 100644 index 0000000..21db514 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/112 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/113 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/113 new file mode 100644 index 0000000..3f06e2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/113 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1247 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1247 new file mode 100644 index 0000000..31fd219 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1247 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1247_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1247_fsm new file mode 100644 index 0000000..0e4086f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1247_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1247_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1247_vm new file mode 100644 index 0000000..48f614f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1247_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1249 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1249 new file mode 100644 index 0000000..14029ce Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1249 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1249_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1249_fsm new file mode 100644 index 0000000..1f8868d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1249_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1249_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1249_vm new file mode 100644 index 0000000..e6a746d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1249_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1255 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1255 new file mode 100644 index 0000000..feed1a3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1255 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1255_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1255_fsm new file mode 100644 index 0000000..b730b34 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1255_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1255_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1255_vm new file mode 100644 index 0000000..18f07f5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1255_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1259 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1259 new file mode 100644 index 0000000..dacdf6b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1259 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1259_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1259_fsm new file mode 100644 index 0000000..3d17e63 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1259_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1259_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1259_vm new file mode 100644 index 0000000..673850d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1259_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13641 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13641 new file mode 100644 index 0000000..254e77d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13641 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13641_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13641_fsm new file mode 100644 index 0000000..dc87bf4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13641_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13641_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13641_vm new file mode 100644 index 0000000..c802431 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13641_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13644 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13644 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13645 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13645 new file mode 100644 index 0000000..e1dc37a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13645 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13646 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13646 new file mode 100644 index 0000000..872daec Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13646 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13646_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13646_fsm new file mode 100644 index 0000000..70d16ce Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13646_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13646_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13646_vm new file mode 100644 index 0000000..34fe414 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13646_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13649 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13649 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13650 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13650 new file mode 100644 index 0000000..e6c48cd Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13650 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13651 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13651 new file mode 100644 index 0000000..623abf6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13651 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13651_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13651_fsm new file mode 100644 index 0000000..d388044 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13651_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13651_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13651_vm new file mode 100644 index 0000000..346dac7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13651_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13654 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13654 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13655 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13655 new file mode 100644 index 0000000..8552798 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13655 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13656 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13656 new file mode 100644 index 0000000..2f20bf7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13656 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13656_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13656_fsm new file mode 100644 index 0000000..a836ddf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13656_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13656_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13656_vm new file mode 100644 index 0000000..9715d8b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13656_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13659 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13659 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13660 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13660 new file mode 100644 index 0000000..2c52783 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/13660 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1417 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1417 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1418 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/1418 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/174 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/174 new file mode 100644 index 0000000..6312b18 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/174 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/175 new file mode 100644 index 0000000..0f504d0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/175 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2187 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2187 new file mode 100644 index 0000000..8298625 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2187 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2224 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2224 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2228 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2228 new file mode 100644 index 0000000..da192ed Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2228 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2328 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2328 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2336 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2336 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2337 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2337 new file mode 100644 index 0000000..06345c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2337 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2579 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2579 new file mode 100644 index 0000000..2d189d9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2579 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2600 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2600 new file mode 100644 index 0000000..827b5c2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2600 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2600_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2600_fsm new file mode 100644 index 0000000..3f8f408 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2600_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2600_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2600_vm new file mode 100644 index 0000000..5c965cc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2600_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2601 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2601 new file mode 100644 index 0000000..d8001c8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2601 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2601_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2601_fsm new file mode 100644 index 0000000..d388044 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2601_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2601_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2601_vm new file mode 100644 index 0000000..776e6a4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2601_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2602 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2602 new file mode 100644 index 0000000..4a27b0a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2602 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2602_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2602_fsm new file mode 100644 index 0000000..23170d8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2602_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2602_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2602_vm new file mode 100644 index 0000000..0a93fa0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2602_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2603 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2603 new file mode 100644 index 0000000..d511af5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2603 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2603_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2603_fsm new file mode 100644 index 0000000..949bd18 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2603_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2603_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2603_vm new file mode 100644 index 0000000..c875bef Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2603_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2604 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2604 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2605 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2605 new file mode 100644 index 0000000..287bf96 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2605 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2605_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2605_fsm new file mode 100644 index 0000000..c7723da Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2605_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2605_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2605_vm new file mode 100644 index 0000000..a6f6844 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2605_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2606 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2606 new file mode 100644 index 0000000..3698458 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2606 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2606_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2606_fsm new file mode 100644 index 0000000..37bfa7e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2606_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2606_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2606_vm new file mode 100644 index 0000000..3f122c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2606_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2607 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2607 new file mode 100644 index 0000000..bfad49a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2607 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2607_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2607_fsm new file mode 100644 index 0000000..80ac8b1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2607_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2607_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2607_vm new file mode 100644 index 0000000..7095b2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2607_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2608 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2608 new file mode 100644 index 0000000..1905e23 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2608 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2608_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2608_fsm new file mode 100644 index 0000000..8e746db Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2608_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2608_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2608_vm new file mode 100644 index 0000000..211d2ec Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2608_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2609 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2609 new file mode 100644 index 0000000..f1a8bc5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2609 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2609_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2609_fsm new file mode 100644 index 0000000..557f6a2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2609_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2609_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2609_vm new file mode 100644 index 0000000..557043b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2609_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2610 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2610 new file mode 100644 index 0000000..c9b7991 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2610 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2610_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2610_fsm new file mode 100644 index 0000000..39a3e89 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2610_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2610_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2610_vm new file mode 100644 index 0000000..4e63b84 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2610_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2611 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2611 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2612 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2612 new file mode 100644 index 0000000..a0bebaf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2612 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2612_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2612_fsm new file mode 100644 index 0000000..877976a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2612_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2612_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2612_vm new file mode 100644 index 0000000..ab3905d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2612_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2613 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2613 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2615 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2615 new file mode 100644 index 0000000..668f260 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2615 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2615_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2615_fsm new file mode 100644 index 0000000..d041693 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2615_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2615_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2615_vm new file mode 100644 index 0000000..542513b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2615_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2616 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2616 new file mode 100644 index 0000000..0d60d79 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2616 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2616_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2616_fsm new file mode 100644 index 0000000..cb924c9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2616_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2616_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2616_vm new file mode 100644 index 0000000..25dc1f3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2616_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2617 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2617 new file mode 100644 index 0000000..8696551 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2617 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2617_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2617_fsm new file mode 100644 index 0000000..84060f4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2617_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2617_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2617_vm new file mode 100644 index 0000000..375465f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2617_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2618 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2618 new file mode 100644 index 0000000..71e3ce3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2618 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2618_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2618_fsm new file mode 100644 index 0000000..b92d2da Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2618_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2618_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2618_vm new file mode 100644 index 0000000..5319c4b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2618_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2619 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2619 new file mode 100644 index 0000000..d4c6b25 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2619 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2619_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2619_fsm new file mode 100644 index 0000000..9942029 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2619_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2619_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2619_vm new file mode 100644 index 0000000..5bbade8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2619_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2620 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2620 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2650 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2650 new file mode 100644 index 0000000..ebcc0c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2650 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2651 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2651 new file mode 100644 index 0000000..8841a67 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2651 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2652 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2652 new file mode 100644 index 0000000..11ee01d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2652 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2653 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2653 new file mode 100644 index 0000000..2b6951c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2653 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2654 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2654 new file mode 100644 index 0000000..68403a4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2654 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2655 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2655 new file mode 100644 index 0000000..8b9aa94 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2655 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2656 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2656 new file mode 100644 index 0000000..ff35981 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2656 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2657 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2657 new file mode 100644 index 0000000..1270286 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2657 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2658 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2658 new file mode 100644 index 0000000..6e20562 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2658 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2659 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2659 new file mode 100644 index 0000000..bb5f26d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2659 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2660 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2660 new file mode 100644 index 0000000..8862e97 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2660 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2661 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2661 new file mode 100644 index 0000000..8bb39cc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2661 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2662 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2662 new file mode 100644 index 0000000..f75176f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2662 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2663 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2663 new file mode 100644 index 0000000..214be26 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2663 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2664 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2664 new file mode 100644 index 0000000..9f2b89b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2664 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2665 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2665 new file mode 100644 index 0000000..1688e1b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2665 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2666 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2666 new file mode 100644 index 0000000..b6b3e08 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2666 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2667 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2667 new file mode 100644 index 0000000..028100f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2667 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2668 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2668 new file mode 100644 index 0000000..17439a2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2668 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2669 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2669 new file mode 100644 index 0000000..d8d8569 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2669 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2670 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2670 new file mode 100644 index 0000000..97e2033 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2670 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2673 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2673 new file mode 100644 index 0000000..bf7e318 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2673 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2673_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2673_fsm new file mode 100644 index 0000000..2c8d238 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2673_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2674 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2674 new file mode 100644 index 0000000..7fbe07b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2674 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2674_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2674_fsm new file mode 100644 index 0000000..ed74869 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2674_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2675 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2675 new file mode 100644 index 0000000..1f94bee Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2675 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2678 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2678 new file mode 100644 index 0000000..04869e4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2678 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2679 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2679 new file mode 100644 index 0000000..0a826df Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2679 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2680 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2680 new file mode 100644 index 0000000..5fd8851 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2680 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2681 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2681 new file mode 100644 index 0000000..8939840 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2681 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2682 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2682 new file mode 100644 index 0000000..eb0cad9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2682 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2683 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2683 new file mode 100644 index 0000000..8187c58 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2683 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2684 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2684 new file mode 100644 index 0000000..430e54f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2684 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2685 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2685 new file mode 100644 index 0000000..e9b8384 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2685 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2686 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2686 new file mode 100644 index 0000000..37beb74 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2686 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2687 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2687 new file mode 100644 index 0000000..20a2d34 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2687 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2688 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2688 new file mode 100644 index 0000000..4cd4907 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2688 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2689 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2689 new file mode 100644 index 0000000..4b12dea Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2689 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2690 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2690 new file mode 100644 index 0000000..f3114ae Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2690 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2691 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2691 new file mode 100644 index 0000000..f52cd3e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2691 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2692 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2692 new file mode 100644 index 0000000..8b7a0e1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2692 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2693 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2693 new file mode 100644 index 0000000..f57dc6c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2693 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2696 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2696 new file mode 100644 index 0000000..9e74939 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2696 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2699 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2699 new file mode 100644 index 0000000..14488bf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2699 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2701 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2701 new file mode 100644 index 0000000..8664200 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2701 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2702 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2702 new file mode 100644 index 0000000..750b4b6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2702 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2703 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2703 new file mode 100644 index 0000000..8f6d874 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2703 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2704 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2704 new file mode 100644 index 0000000..10c8258 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2704 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2753 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2753 new file mode 100644 index 0000000..3c16dff Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2753 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2753_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2753_fsm new file mode 100644 index 0000000..642bce3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2753_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2753_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2753_vm new file mode 100644 index 0000000..d62a836 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2753_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2754 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2754 new file mode 100644 index 0000000..0c2ef54 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2754 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2755 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2755 new file mode 100644 index 0000000..5e7143b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2755 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2756 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2756 new file mode 100644 index 0000000..0758e05 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2756 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2757 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2757 new file mode 100644 index 0000000..80dd62a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2757 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2830 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2830 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2831 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2831 new file mode 100644 index 0000000..61046f3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2831 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2832 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2832 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2833 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2833 new file mode 100644 index 0000000..fb3c12d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2833 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2834 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2834 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2835 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2835 new file mode 100644 index 0000000..3c05130 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2835 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2836 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2836 new file mode 100644 index 0000000..a2910fb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2836 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2836_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2836_fsm new file mode 100644 index 0000000..4066e1e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2836_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2836_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2836_vm new file mode 100644 index 0000000..abecba7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2836_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2837 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2837 new file mode 100644 index 0000000..acaf845 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2837 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2838 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2838 new file mode 100644 index 0000000..87e1120 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2838 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2838_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2838_fsm new file mode 100644 index 0000000..cf21f89 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2838_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2838_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2838_vm new file mode 100644 index 0000000..9e86ed4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2838_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2839 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2839 new file mode 100644 index 0000000..bacac83 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2839 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2840 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2840 new file mode 100644 index 0000000..596dfff Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2840 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2840_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2840_fsm new file mode 100644 index 0000000..cc54fcb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2840_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2840_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2840_vm new file mode 100644 index 0000000..03fe359 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2840_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2841 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2841 new file mode 100644 index 0000000..b79c927 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2841 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2995 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2995 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2996 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2996 new file mode 100644 index 0000000..94563e7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/2996 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3079 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3079 new file mode 100644 index 0000000..bbf4066 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3079 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3079_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3079_fsm new file mode 100644 index 0000000..7732d22 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3079_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3079_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3079_vm new file mode 100644 index 0000000..8958922 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3079_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3080 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3080 new file mode 100644 index 0000000..6eeaa4a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3080 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3081 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3081 new file mode 100644 index 0000000..edf2ed4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3081 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3085 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3085 new file mode 100644 index 0000000..3c4cbb3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3085 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3118 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3118 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3119 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3119 new file mode 100644 index 0000000..c0d08b7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3119 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3164 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3164 new file mode 100644 index 0000000..be268e6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3164 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3256 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3256 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3257 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3257 new file mode 100644 index 0000000..85937d2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3257 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3258 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3258 new file mode 100644 index 0000000..5f252a3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3258 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3350 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3350 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3351 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3351 new file mode 100644 index 0000000..0aecbb3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3351 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3379 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3379 new file mode 100644 index 0000000..9cc56f1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3379 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3380 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3380 new file mode 100644 index 0000000..896db3e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3380 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3381 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3381 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3394 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3394 new file mode 100644 index 0000000..a56aa6d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3394 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3394_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3394_fsm new file mode 100644 index 0000000..f8d6070 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3394_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3394_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3394_vm new file mode 100644 index 0000000..c87a7b5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3394_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3395 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3395 new file mode 100644 index 0000000..9a2d70c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3395 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3429 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3429 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3430 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3430 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3431 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3431 new file mode 100644 index 0000000..8a6528d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3431 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3433 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3433 new file mode 100644 index 0000000..0c4736b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3433 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3439 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3439 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3440 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3440 new file mode 100644 index 0000000..1174715 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3440 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3455 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3455 new file mode 100644 index 0000000..22dc902 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3455 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3456 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3456 new file mode 100644 index 0000000..afca583 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3456 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3456_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3456_fsm new file mode 100644 index 0000000..308a42f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3456_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3456_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3456_vm new file mode 100644 index 0000000..f70ad69 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3456_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3466 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3466 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3467 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3467 new file mode 100644 index 0000000..020deba Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3467 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3468 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3468 new file mode 100644 index 0000000..a37352a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3468 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3501 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3501 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3502 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3502 new file mode 100644 index 0000000..94e5e8e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3502 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3503 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3503 new file mode 100644 index 0000000..df8e743 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3503 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3534 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3534 new file mode 100644 index 0000000..98d4854 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3534 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3541 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3541 new file mode 100644 index 0000000..40869ad Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3541 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3541_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3541_fsm new file mode 100644 index 0000000..a3a2de4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3541_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3541_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3541_vm new file mode 100644 index 0000000..4b9c711 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3541_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3542 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3542 new file mode 100644 index 0000000..ee21b6a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3542 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3574 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3574 new file mode 100644 index 0000000..418bbca Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3574 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3575 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3575 new file mode 100644 index 0000000..6addf86 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3575 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3576 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3576 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3596 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3596 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3597 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3597 new file mode 100644 index 0000000..71d2820 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3597 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3598 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3598 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3599 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3599 new file mode 100644 index 0000000..20c4969 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3599 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3600 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3600 new file mode 100644 index 0000000..3c7a21b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3600 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3600_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3600_fsm new file mode 100644 index 0000000..cebec19 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3600_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3600_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3600_vm new file mode 100644 index 0000000..3c90651 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3600_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3601 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3601 new file mode 100644 index 0000000..04c846e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3601 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3601_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3601_fsm new file mode 100644 index 0000000..7732d22 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3601_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3601_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3601_vm new file mode 100644 index 0000000..f178e59 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3601_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3602 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3602 new file mode 100644 index 0000000..6fa54cf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3602 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3602_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3602_fsm new file mode 100644 index 0000000..d7897de Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3602_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3602_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3602_vm new file mode 100644 index 0000000..b635a1f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3602_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3603 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3603 new file mode 100644 index 0000000..c95eefa Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3603 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3603_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3603_fsm new file mode 100644 index 0000000..c28dd4f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3603_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3603_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3603_vm new file mode 100644 index 0000000..01260ef Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3603_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3604 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3604 new file mode 100644 index 0000000..ce4c466 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3604 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3605 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3605 new file mode 100644 index 0000000..038efba Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3605 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3606 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3606 new file mode 100644 index 0000000..de60e2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3606 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3607 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3607 new file mode 100644 index 0000000..ff53735 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3607 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3608 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3608 new file mode 100644 index 0000000..f68abf8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3608 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3609 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3609 new file mode 100644 index 0000000..9b45e30 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3609 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3712 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3712 new file mode 100644 index 0000000..932f137 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3712 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3764 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3764 new file mode 100644 index 0000000..778b30a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3764 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3764_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3764_fsm new file mode 100644 index 0000000..f64db4d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3764_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3764_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3764_vm new file mode 100644 index 0000000..5e07ce2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3764_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3766 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3766 new file mode 100644 index 0000000..4a17862 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3766 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3767 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3767 new file mode 100644 index 0000000..e3ed16d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3767 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3997 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3997 new file mode 100644 index 0000000..3832f55 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/3997 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4143 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4143 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4144 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4144 new file mode 100644 index 0000000..178af33 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4144 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4145 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4145 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4146 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4146 new file mode 100644 index 0000000..bb603a6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4146 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4147 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4147 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4148 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4148 new file mode 100644 index 0000000..87c330b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4148 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4149 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4149 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4150 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4150 new file mode 100644 index 0000000..2085995 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4150 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4151 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4151 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4152 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4152 new file mode 100644 index 0000000..23407ab Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4152 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4153 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4153 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4154 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4154 new file mode 100644 index 0000000..edaed60 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4154 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4155 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4155 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4156 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4156 new file mode 100644 index 0000000..f0c50e4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4156 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4157 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4157 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4158 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4158 new file mode 100644 index 0000000..d45296c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4158 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4159 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4159 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4160 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4160 new file mode 100644 index 0000000..e0fd4e1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4160 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4163 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4163 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4164 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4164 new file mode 100644 index 0000000..9a3435b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4164 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4165 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4165 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4166 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4166 new file mode 100644 index 0000000..be076db Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4166 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4167 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4167 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4168 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4168 new file mode 100644 index 0000000..976615c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4168 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4169 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4169 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4170 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4170 new file mode 100644 index 0000000..f33abe0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4170 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4171 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4171 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4172 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4172 new file mode 100644 index 0000000..bfa5606 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4172 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4173 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4173 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4174 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4174 new file mode 100644 index 0000000..8a80490 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/4174 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/5002 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/5002 new file mode 100644 index 0000000..32af7a1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/5002 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/548 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/548 new file mode 100644 index 0000000..9f21947 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/548 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/549 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/549 new file mode 100644 index 0000000..68efb3f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/549 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6102 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6102 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6104 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6104 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6106 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6106 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6110 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6110 new file mode 100644 index 0000000..536b80d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6110 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6111 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6111 new file mode 100644 index 0000000..3d22c94 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6111 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6112 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6112 new file mode 100644 index 0000000..9e47d5c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6112 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6113 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6113 new file mode 100644 index 0000000..4e57f5b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6113 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6117 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6117 new file mode 100644 index 0000000..296b14e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6117 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6175 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6176 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6176 new file mode 100644 index 0000000..a349a04 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/6176 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/826 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/826 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/827 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/827 new file mode 100644 index 0000000..86db9fe Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/827 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/828 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/828 new file mode 100644 index 0000000..4a52299 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/828 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/PG_VERSION b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/PG_VERSION new file mode 100644 index 0000000..8351c19 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/PG_VERSION @@ -0,0 +1 @@ +14 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/pg_filenode.map b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/pg_filenode.map new file mode 100644 index 0000000..193d78f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/pg_filenode.map differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/pg_internal.init b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/pg_internal.init new file mode 100644 index 0000000..c4ee030 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/13823/pg_internal.init differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/112 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/112 new file mode 100644 index 0000000..21db514 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/112 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/113 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/113 new file mode 100644 index 0000000..3f06e2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/113 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1247 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1247 new file mode 100644 index 0000000..b474018 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1247 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1247_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1247_fsm new file mode 100644 index 0000000..8092c7f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1247_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1247_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1247_vm new file mode 100644 index 0000000..71ab423 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1247_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1249 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1249 new file mode 100644 index 0000000..1a0875b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1249 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1249_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1249_fsm new file mode 100644 index 0000000..e4dfbd8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1249_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1249_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1249_vm new file mode 100644 index 0000000..14f20d1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1249_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1255 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1255 new file mode 100644 index 0000000..35a342a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1255 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1255_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1255_fsm new file mode 100644 index 0000000..204f44d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1255_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1255_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1255_vm new file mode 100644 index 0000000..2d892c4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1255_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1259 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1259 new file mode 100644 index 0000000..6f82fa6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1259 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1259_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1259_fsm new file mode 100644 index 0000000..66c609e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1259_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1259_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1259_vm new file mode 100644 index 0000000..84e3ae0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1259_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13641 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13641 new file mode 100644 index 0000000..254e77d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13641 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13641_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13641_fsm new file mode 100644 index 0000000..dc87bf4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13641_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13641_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13641_vm new file mode 100644 index 0000000..c802431 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13641_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13644 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13644 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13645 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13645 new file mode 100644 index 0000000..e1dc37a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13645 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13646 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13646 new file mode 100644 index 0000000..872daec Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13646 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13646_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13646_fsm new file mode 100644 index 0000000..70d16ce Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13646_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13646_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13646_vm new file mode 100644 index 0000000..34fe414 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13646_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13649 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13649 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13650 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13650 new file mode 100644 index 0000000..e6c48cd Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13650 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13651 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13651 new file mode 100644 index 0000000..623abf6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13651 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13651_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13651_fsm new file mode 100644 index 0000000..d388044 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13651_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13651_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13651_vm new file mode 100644 index 0000000..346dac7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13651_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13654 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13654 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13655 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13655 new file mode 100644 index 0000000..8552798 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13655 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13656 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13656 new file mode 100644 index 0000000..2f20bf7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13656 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13656_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13656_fsm new file mode 100644 index 0000000..a836ddf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13656_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13656_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13656_vm new file mode 100644 index 0000000..9715d8b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13656_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13659 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13659 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13660 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13660 new file mode 100644 index 0000000..2c52783 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/13660 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1417 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1417 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1418 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/1418 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16406 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16406 new file mode 100644 index 0000000..c7dc01d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16406 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16407 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16407 new file mode 100644 index 0000000..1b8470e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16407 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16417 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16417 new file mode 100644 index 0000000..b9c958f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16417 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16419 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16419 new file mode 100644 index 0000000..88dd529 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16419 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16421 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16421 new file mode 100644 index 0000000..7aabe53 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16421 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16428 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16428 new file mode 100644 index 0000000..c28d6ff Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16428 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16429 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16429 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16433 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16433 new file mode 100644 index 0000000..f484aa3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16433 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16435 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16435 new file mode 100644 index 0000000..7ec5d7f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16435 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16442 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16442 new file mode 100644 index 0000000..2f49d85 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16442 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16443 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16443 new file mode 100644 index 0000000..21c4e10 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16443 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16452 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16452 new file mode 100644 index 0000000..afe2713 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16452 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16454 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16454 new file mode 100644 index 0000000..3c79dd9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16454 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16461 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16461 new file mode 100644 index 0000000..13b6013 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16461 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16462 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16462 new file mode 100644 index 0000000..8a65b64 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16462 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16467 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16467 new file mode 100644 index 0000000..ca92754 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16467 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16469 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16469 new file mode 100644 index 0000000..680d2d9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16469 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16476 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16476 new file mode 100644 index 0000000..dfda264 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16476 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16477 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16477 new file mode 100644 index 0000000..66a98bd Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16477 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16484 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16484 new file mode 100644 index 0000000..cd007da Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16484 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16486 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16486 new file mode 100644 index 0000000..d1fc62d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16486 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16498 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16498 new file mode 100644 index 0000000..7e0d672 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16498 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16499 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16499 new file mode 100644 index 0000000..d4f8887 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16499 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16500 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16500 new file mode 100644 index 0000000..cad19e7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16500 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16501 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16501 new file mode 100644 index 0000000..ca985aa Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16501 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16502 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16502 new file mode 100644 index 0000000..7db4ee3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16502 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16505 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16505 new file mode 100644 index 0000000..741abb8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16505 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16517 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16517 new file mode 100644 index 0000000..c67cef8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16517 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16518 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16518 new file mode 100644 index 0000000..2d0505d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16518 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16519 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16519 new file mode 100644 index 0000000..d644627 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16519 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16522 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16522 new file mode 100644 index 0000000..a548a77 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16522 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16534 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16534 new file mode 100644 index 0000000..a23e02d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16534 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16535 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16535 new file mode 100644 index 0000000..e62274d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16535 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16536 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16536 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16541 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16541 new file mode 100644 index 0000000..df3244d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16541 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16543 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16543 new file mode 100644 index 0000000..9c240cc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16543 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16555 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16555 new file mode 100644 index 0000000..5f9e50e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16555 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16556 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16556 new file mode 100644 index 0000000..b92ef6f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16556 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16563 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16563 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16564 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16564 new file mode 100644 index 0000000..d23064b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16564 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16565 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16565 new file mode 100644 index 0000000..63430e9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16565 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16572 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16572 new file mode 100644 index 0000000..894c584 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16572 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16573 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16573 new file mode 100644 index 0000000..a8302df Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16573 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16578 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16578 new file mode 100644 index 0000000..ac19425 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16578 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16585 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16585 new file mode 100644 index 0000000..327801b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16585 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16586 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16586 new file mode 100644 index 0000000..8261b05 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16586 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16591 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16591 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16592 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16592 new file mode 100644 index 0000000..7780a43 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16592 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16593 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16593 new file mode 100644 index 0000000..217902c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16593 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16595 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16595 new file mode 100644 index 0000000..d1c41cf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16595 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16596 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16596 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16599 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16599 new file mode 100644 index 0000000..e001c29 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16599 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16611 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16611 new file mode 100644 index 0000000..40e00ab Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16611 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16614 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16614 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16615 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16615 new file mode 100644 index 0000000..fa7f2a8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16615 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16616 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16616 new file mode 100644 index 0000000..a5bb1c5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16616 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16624 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16624 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16629 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16629 new file mode 100644 index 0000000..fb26902 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16629 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16631 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16631 new file mode 100644 index 0000000..836a41b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16631 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16633 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16633 new file mode 100644 index 0000000..9446c8c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16633 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16650 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16650 new file mode 100644 index 0000000..e09b7cf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16650 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16651 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16651 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16655 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16655 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16656 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16656 new file mode 100644 index 0000000..21ebcea Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16656 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16657 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16657 new file mode 100644 index 0000000..a605d9c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16657 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16664 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16664 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16667 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16667 new file mode 100644 index 0000000..a8f501d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16667 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16674 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16674 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16677 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16677 new file mode 100644 index 0000000..bb71764 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16677 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16684 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16684 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16687 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16687 new file mode 100644 index 0000000..9046186 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16687 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16688 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16688 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16696 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16696 new file mode 100644 index 0000000..83d1ac4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16696 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16697 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16697 new file mode 100644 index 0000000..9924f91 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16697 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16700 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16700 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16701 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16701 new file mode 100644 index 0000000..711ad94 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16701 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16702 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16702 new file mode 100644 index 0000000..af3390e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16702 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16704 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16704 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16710 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16710 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16711 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16711 new file mode 100644 index 0000000..76bb087 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16711 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16712 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16712 new file mode 100644 index 0000000..a4c3258 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16712 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16714 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16714 new file mode 100644 index 0000000..699197f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16714 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16715 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16715 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16718 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16718 new file mode 100644 index 0000000..990de1f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16718 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16730 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16730 new file mode 100644 index 0000000..f932f34 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16730 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16731 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16731 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16735 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16735 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16736 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16736 new file mode 100644 index 0000000..6ba98a1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16736 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16737 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16737 new file mode 100644 index 0000000..3c32eac Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16737 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16739 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16739 new file mode 100644 index 0000000..6aa774e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16739 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16740 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16740 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16747 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16747 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16748 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16748 new file mode 100644 index 0000000..562a626 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16748 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16749 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16749 new file mode 100644 index 0000000..c71f984 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16749 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16756 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16756 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16759 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16759 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16762 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/16762 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17138 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17138 new file mode 100644 index 0000000..d224b0b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17138 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17139 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17139 new file mode 100644 index 0000000..e41bd46 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17139 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17139_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17139_fsm new file mode 100644 index 0000000..891d0a1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17139_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17139_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17139_vm new file mode 100644 index 0000000..4df0ad2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17139_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17144 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17144 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17145 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17145 new file mode 100644 index 0000000..415cc0c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17145 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17146 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17146 new file mode 100644 index 0000000..16177e6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17146 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17148 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17148 new file mode 100644 index 0000000..d1fac15 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17148 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17150 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17150 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17154 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17154 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17155 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17155 new file mode 100644 index 0000000..72fbeec Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17155 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17159 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17159 new file mode 100644 index 0000000..d019a3a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17159 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17166 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17166 new file mode 100644 index 0000000..446bcaf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17166 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17168 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17168 new file mode 100644 index 0000000..d9a2fc5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17168 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17169 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17169 new file mode 100644 index 0000000..29caf63 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17169 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17170 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17170 new file mode 100644 index 0000000..b5e860e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17170 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17170_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17170_fsm new file mode 100644 index 0000000..8929482 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17170_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17170_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17170_vm new file mode 100644 index 0000000..e491f70 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17170_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17175 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17176 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17176 new file mode 100644 index 0000000..4321f93 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17176 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17177 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17177 new file mode 100644 index 0000000..adfdc1f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17177 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17184 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17184 new file mode 100644 index 0000000..a88fb05 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17184 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17185 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17185 new file mode 100644 index 0000000..5ac4486 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17185 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17187 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17187 new file mode 100644 index 0000000..60c93b8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17187 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17187_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17187_fsm new file mode 100644 index 0000000..46eefd8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17187_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17187_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17187_vm new file mode 100644 index 0000000..4307720 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17187_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17191 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17191 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17192 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17192 new file mode 100644 index 0000000..c69af9a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17192 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17193 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17193 new file mode 100644 index 0000000..284118c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17193 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17201 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17201 new file mode 100644 index 0000000..cae36a4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17201 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17202 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17202 new file mode 100644 index 0000000..c60f08d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17202 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17257 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17257 new file mode 100644 index 0000000..697f5f0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17257 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17257_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17257_fsm new file mode 100644 index 0000000..27cd1a2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17257_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17257_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17257_vm new file mode 100644 index 0000000..5e66f27 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17257_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17261 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17261 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17262 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17262 new file mode 100644 index 0000000..5920664 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17262 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17263 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17263 new file mode 100644 index 0000000..4fdaca9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17263 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17271 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17271 new file mode 100644 index 0000000..9313d8b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17271 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17272 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17272 new file mode 100644 index 0000000..0b7b9c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17272 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17313 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17313 new file mode 100644 index 0000000..2d05f9e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17313 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17313_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17313_fsm new file mode 100644 index 0000000..dbff8eb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17313_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17313_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17313_vm new file mode 100644 index 0000000..b29da38 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17313_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17317 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17317 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17318 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17318 new file mode 100644 index 0000000..8cb5c0a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17318 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17319 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17319 new file mode 100644 index 0000000..1acf120 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17319 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17327 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17327 new file mode 100644 index 0000000..0d9e94d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17327 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17328 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17328 new file mode 100644 index 0000000..ef6b9f4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17328 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17368 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17368 new file mode 100644 index 0000000..d47c8b6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17368 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17368_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17368_fsm new file mode 100644 index 0000000..89414cd Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17368_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17368_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17368_vm new file mode 100644 index 0000000..0ec91c6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17368_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17372 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17372 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17373 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17373 new file mode 100644 index 0000000..af2ef37 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17373 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17374 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17374 new file mode 100644 index 0000000..d612f57 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17374 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17382 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17382 new file mode 100644 index 0000000..2e01681 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17382 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17383 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17383 new file mode 100644 index 0000000..c25f709 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17383 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/174 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/174 new file mode 100644 index 0000000..6312b18 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/174 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17424 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17424 new file mode 100644 index 0000000..b0bcd6d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17424 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17424_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17424_fsm new file mode 100644 index 0000000..9cf767d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17424_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17424_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17424_vm new file mode 100644 index 0000000..194c523 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17424_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17428 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17428 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17429 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17429 new file mode 100644 index 0000000..c967383 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17429 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17430 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17430 new file mode 100644 index 0000000..25d8540 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17430 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17438 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17438 new file mode 100644 index 0000000..afe7451 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17438 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17439 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17439 new file mode 100644 index 0000000..1353ce1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17439 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17485 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17485 new file mode 100644 index 0000000..21e7520 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17485 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17485_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17485_fsm new file mode 100644 index 0000000..7361f57 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17485_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17485_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17485_vm new file mode 100644 index 0000000..343a788 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17485_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17489 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17489 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17490 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17490 new file mode 100644 index 0000000..cb5fcea Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17490 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17491 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17491 new file mode 100644 index 0000000..a251ad0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17491 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17499 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17499 new file mode 100644 index 0000000..609dc63 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17499 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/175 new file mode 100644 index 0000000..0f504d0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/175 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17500 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17500 new file mode 100644 index 0000000..0a5c428 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17500 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17545 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17545 new file mode 100644 index 0000000..5cc2dda Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17545 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17545_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17545_fsm new file mode 100644 index 0000000..5450593 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17545_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17545_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17545_vm new file mode 100644 index 0000000..225d085 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17545_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17549 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17549 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17550 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17550 new file mode 100644 index 0000000..4f6b680 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17550 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17551 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17551 new file mode 100644 index 0000000..eaa03ca Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17551 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17559 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17559 new file mode 100644 index 0000000..c7acde6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17559 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17560 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17560 new file mode 100644 index 0000000..22d28ab Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/17560 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2187 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2187 new file mode 100644 index 0000000..7be2b0f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2187 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2224 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2224 new file mode 100644 index 0000000..ede2a50 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2224 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2228 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2228 new file mode 100644 index 0000000..da192ed Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2228 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2328 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2328 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2336 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2336 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2337 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2337 new file mode 100644 index 0000000..06345c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2337 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25708 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25708 new file mode 100644 index 0000000..b3ad342 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25708 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25708_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25708_fsm new file mode 100644 index 0000000..eca92bc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25708_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25708_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25708_vm new file mode 100644 index 0000000..b3b5338 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25708_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25712 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25712 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25713 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25713 new file mode 100644 index 0000000..279e934 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25713 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25714 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25714 new file mode 100644 index 0000000..4851a46 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25714 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25722 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25722 new file mode 100644 index 0000000..37f6bd5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25722 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25723 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25723 new file mode 100644 index 0000000..099d8bf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25723 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25768 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25768 new file mode 100644 index 0000000..c6ad9dc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25768 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25768_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25768_fsm new file mode 100644 index 0000000..4774ef6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25768_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25768_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25768_vm new file mode 100644 index 0000000..80d2140 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25768_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25772 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25772 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25773 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25773 new file mode 100644 index 0000000..f1c827c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25773 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25774 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25774 new file mode 100644 index 0000000..99659c4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25774 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25782 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25782 new file mode 100644 index 0000000..273ecd8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25782 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25783 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25783 new file mode 100644 index 0000000..5bdb926 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25783 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2579 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2579 new file mode 100644 index 0000000..1a172b6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2579 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25828 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25828 new file mode 100644 index 0000000..b2aebb0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25828 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25828_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25828_fsm new file mode 100644 index 0000000..6c4f82e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25828_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25828_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25828_vm new file mode 100644 index 0000000..749ef7b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25828_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25832 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25832 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25833 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25833 new file mode 100644 index 0000000..dbbd536 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25833 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25834 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25834 new file mode 100644 index 0000000..779da91 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25834 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25842 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25842 new file mode 100644 index 0000000..db9a089 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25842 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25843 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25843 new file mode 100644 index 0000000..a7b257c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25843 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25866 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25866 new file mode 100644 index 0000000..3550cb9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25866 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25866_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25866_fsm new file mode 100644 index 0000000..4ee2219 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25866_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25866_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25866_vm new file mode 100644 index 0000000..db124e9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25866_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25870 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25870 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25871 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25871 new file mode 100644 index 0000000..bc3fb32 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25871 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25872 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25872 new file mode 100644 index 0000000..cbe5eb1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25872 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25880 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25880 new file mode 100644 index 0000000..c21422d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25880 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25881 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25881 new file mode 100644 index 0000000..c66e688 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/25881 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2600 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2600 new file mode 100644 index 0000000..08aafc7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2600 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2600_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2600_fsm new file mode 100644 index 0000000..3f8f408 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2600_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2600_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2600_vm new file mode 100644 index 0000000..0dd0366 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2600_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2601 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2601 new file mode 100644 index 0000000..d91e11c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2601 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2601_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2601_fsm new file mode 100644 index 0000000..d388044 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2601_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2601_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2601_vm new file mode 100644 index 0000000..880bd8d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2601_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2602 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2602 new file mode 100644 index 0000000..afaad48 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2602 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2602_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2602_fsm new file mode 100644 index 0000000..23170d8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2602_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2602_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2602_vm new file mode 100644 index 0000000..7d463cb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2602_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2603 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2603 new file mode 100644 index 0000000..bd6c9dc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2603 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2603_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2603_fsm new file mode 100644 index 0000000..949bd18 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2603_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2603_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2603_vm new file mode 100644 index 0000000..a329959 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2603_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2604 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2604 new file mode 100644 index 0000000..8cbaf42 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2604 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2604_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2604_fsm new file mode 100644 index 0000000..7521fe1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2604_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2605 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2605 new file mode 100644 index 0000000..287bf96 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2605 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2605_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2605_fsm new file mode 100644 index 0000000..c7723da Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2605_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2605_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2605_vm new file mode 100644 index 0000000..a6f6844 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2605_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2606 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2606 new file mode 100644 index 0000000..3daf3ea Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2606 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2606_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2606_fsm new file mode 100644 index 0000000..cadc55e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2606_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2606_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2606_vm new file mode 100644 index 0000000..d40c85f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2606_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2607 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2607 new file mode 100644 index 0000000..bfad49a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2607 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2607_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2607_fsm new file mode 100644 index 0000000..80ac8b1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2607_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2607_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2607_vm new file mode 100644 index 0000000..7095b2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2607_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2608 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2608 new file mode 100644 index 0000000..33b404c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2608 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2608_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2608_fsm new file mode 100644 index 0000000..e1e4491 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2608_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2608_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2608_vm new file mode 100644 index 0000000..598f363 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2608_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2609 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2609 new file mode 100644 index 0000000..1139948 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2609 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2609_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2609_fsm new file mode 100644 index 0000000..557f6a2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2609_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2609_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2609_vm new file mode 100644 index 0000000..d2f7de8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2609_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2610 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2610 new file mode 100644 index 0000000..de4c4c2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2610 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2610_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2610_fsm new file mode 100644 index 0000000..966dccc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2610_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2610_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2610_vm new file mode 100644 index 0000000..9544086 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2610_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2611 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2611 new file mode 100644 index 0000000..0570978 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2611 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2612 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2612 new file mode 100644 index 0000000..a0bebaf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2612 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2612_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2612_fsm new file mode 100644 index 0000000..877976a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2612_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2612_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2612_vm new file mode 100644 index 0000000..ab3905d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2612_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2613 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2613 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2615 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2615 new file mode 100644 index 0000000..c213ec9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2615 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2615_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2615_fsm new file mode 100644 index 0000000..d041693 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2615_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2615_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2615_vm new file mode 100644 index 0000000..04912f4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2615_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2616 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2616 new file mode 100644 index 0000000..1407a38 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2616 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2616_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2616_fsm new file mode 100644 index 0000000..cb924c9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2616_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2616_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2616_vm new file mode 100644 index 0000000..b471892 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2616_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2617 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2617 new file mode 100644 index 0000000..8696551 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2617 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2617_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2617_fsm new file mode 100644 index 0000000..84060f4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2617_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2617_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2617_vm new file mode 100644 index 0000000..375465f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2617_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2618 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2618 new file mode 100644 index 0000000..5a043c3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2618 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2618_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2618_fsm new file mode 100644 index 0000000..379c119 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2618_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2618_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2618_vm new file mode 100644 index 0000000..0fb8b20 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2618_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2619 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2619 new file mode 100644 index 0000000..c2922cd Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2619 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2619_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2619_fsm new file mode 100644 index 0000000..38a1fa7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2619_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2619_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2619_vm new file mode 100644 index 0000000..252f012 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2619_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2620 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2620 new file mode 100644 index 0000000..f57ab17 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2620 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2620_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2620_fsm new file mode 100644 index 0000000..565f079 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2620_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2650 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2650 new file mode 100644 index 0000000..32060e7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2650 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2651 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2651 new file mode 100644 index 0000000..761df68 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2651 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2652 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2652 new file mode 100644 index 0000000..1767e26 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2652 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2653 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2653 new file mode 100644 index 0000000..8df4b1f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2653 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2654 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2654 new file mode 100644 index 0000000..6faa4c6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2654 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2655 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2655 new file mode 100644 index 0000000..774cd56 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2655 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2656 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2656 new file mode 100644 index 0000000..9d9d502 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2656 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2657 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2657 new file mode 100644 index 0000000..1798d87 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2657 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2658 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2658 new file mode 100644 index 0000000..1f12893 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2658 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2659 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2659 new file mode 100644 index 0000000..f2945fe Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2659 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2660 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2660 new file mode 100644 index 0000000..8862e97 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2660 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2661 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2661 new file mode 100644 index 0000000..8bb39cc Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2661 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2662 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2662 new file mode 100644 index 0000000..acf4192 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2662 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2663 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2663 new file mode 100644 index 0000000..9ccb848 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2663 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2664 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2664 new file mode 100644 index 0000000..446d8c8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2664 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2665 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2665 new file mode 100644 index 0000000..a948eea Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2665 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2666 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2666 new file mode 100644 index 0000000..03b1499 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2666 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2667 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2667 new file mode 100644 index 0000000..39bc7d5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2667 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2668 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2668 new file mode 100644 index 0000000..17439a2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2668 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2669 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2669 new file mode 100644 index 0000000..d8d8569 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2669 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2670 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2670 new file mode 100644 index 0000000..97e2033 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2670 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2673 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2673 new file mode 100644 index 0000000..e7d6396 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2673 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2673_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2673_fsm new file mode 100644 index 0000000..f737ef1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2673_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2674 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2674 new file mode 100644 index 0000000..8f63873 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2674 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2674_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2674_fsm new file mode 100644 index 0000000..8b83f3e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2674_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2675 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2675 new file mode 100644 index 0000000..52b1214 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2675 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2678 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2678 new file mode 100644 index 0000000..691765b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2678 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2679 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2679 new file mode 100644 index 0000000..571e21d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2679 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2680 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2680 new file mode 100644 index 0000000..d83b4ba Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2680 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2681 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2681 new file mode 100644 index 0000000..8939840 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2681 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2682 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2682 new file mode 100644 index 0000000..eb0cad9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2682 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2683 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2683 new file mode 100644 index 0000000..8187c58 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2683 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2684 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2684 new file mode 100644 index 0000000..584ecff Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2684 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2685 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2685 new file mode 100644 index 0000000..cf3d83a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2685 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2686 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2686 new file mode 100644 index 0000000..9eba50b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2686 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2687 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2687 new file mode 100644 index 0000000..7c7441b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2687 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2688 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2688 new file mode 100644 index 0000000..4cd4907 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2688 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2689 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2689 new file mode 100644 index 0000000..4b12dea Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2689 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2690 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2690 new file mode 100644 index 0000000..502900f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2690 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2691 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2691 new file mode 100644 index 0000000..53b73ba Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2691 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2692 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2692 new file mode 100644 index 0000000..299a959 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2692 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2693 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2693 new file mode 100644 index 0000000..cadf119 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2693 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2696 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2696 new file mode 100644 index 0000000..c5e45f3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2696 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2699 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2699 new file mode 100644 index 0000000..009ef13 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2699 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2701 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2701 new file mode 100644 index 0000000..7b1ddfb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2701 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2702 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2702 new file mode 100644 index 0000000..83d24eb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2702 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2703 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2703 new file mode 100644 index 0000000..724e4ad Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2703 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2704 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2704 new file mode 100644 index 0000000..d580cdd Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2704 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2753 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2753 new file mode 100644 index 0000000..4bf3d2c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2753 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2753_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2753_fsm new file mode 100644 index 0000000..642bce3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2753_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2753_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2753_vm new file mode 100644 index 0000000..db1021f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2753_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2754 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2754 new file mode 100644 index 0000000..f237fac Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2754 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2755 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2755 new file mode 100644 index 0000000..99cf09a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2755 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2756 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2756 new file mode 100644 index 0000000..3862ee5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2756 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2757 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2757 new file mode 100644 index 0000000..69e7f10 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2757 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2830 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2830 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2831 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2831 new file mode 100644 index 0000000..61046f3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2831 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2832 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2832 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2833 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2833 new file mode 100644 index 0000000..fb3c12d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2833 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2834 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2834 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2835 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2835 new file mode 100644 index 0000000..3c05130 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2835 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2836 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2836 new file mode 100644 index 0000000..3d5268b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2836 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2836_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2836_fsm new file mode 100644 index 0000000..59bba5f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2836_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2836_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2836_vm new file mode 100644 index 0000000..9c45224 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2836_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2837 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2837 new file mode 100644 index 0000000..5651703 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2837 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2838 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2838 new file mode 100644 index 0000000..ae22379 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2838 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2838_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2838_fsm new file mode 100644 index 0000000..def3b74 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2838_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2838_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2838_vm new file mode 100644 index 0000000..40f8d4d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2838_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2839 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2839 new file mode 100644 index 0000000..7cceabf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2839 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2840 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2840 new file mode 100644 index 0000000..ffc5ed4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2840 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2840_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2840_fsm new file mode 100644 index 0000000..84c59c2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2840_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2840_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2840_vm new file mode 100644 index 0000000..fd97b5d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2840_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2841 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2841 new file mode 100644 index 0000000..bd9766c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2841 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2995 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2995 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2996 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2996 new file mode 100644 index 0000000..94563e7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/2996 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3079 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3079 new file mode 100644 index 0000000..61e1ca2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3079 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3079_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3079_fsm new file mode 100644 index 0000000..57f0d1c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3079_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3079_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3079_vm new file mode 100644 index 0000000..3ec7254 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3079_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3080 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3080 new file mode 100644 index 0000000..95e9a16 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3080 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3081 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3081 new file mode 100644 index 0000000..322f879 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3081 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3085 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3085 new file mode 100644 index 0000000..3c4cbb3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3085 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3118 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3118 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3119 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3119 new file mode 100644 index 0000000..c0d08b7 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3119 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3164 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3164 new file mode 100644 index 0000000..be268e6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3164 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3256 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3256 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3257 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3257 new file mode 100644 index 0000000..85937d2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3257 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3258 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3258 new file mode 100644 index 0000000..5f252a3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3258 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3350 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3350 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3351 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3351 new file mode 100644 index 0000000..0aecbb3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3351 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3379 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3379 new file mode 100644 index 0000000..9cc56f1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3379 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3380 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3380 new file mode 100644 index 0000000..896db3e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3380 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3381 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3381 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33907 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33907 new file mode 100644 index 0000000..5457ed4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33907 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33907_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33907_fsm new file mode 100644 index 0000000..283c228 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33907_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33907_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33907_vm new file mode 100644 index 0000000..b6fd94a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33907_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33911 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33911 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33912 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33912 new file mode 100644 index 0000000..6109c5a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33912 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33913 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33913 new file mode 100644 index 0000000..169797d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33913 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33921 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33921 new file mode 100644 index 0000000..d37c26e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33921 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33922 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33922 new file mode 100644 index 0000000..384dcbe Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33922 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3394 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3394 new file mode 100644 index 0000000..913ef80 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3394 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3394_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3394_fsm new file mode 100644 index 0000000..f8d6070 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3394_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3394_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3394_vm new file mode 100644 index 0000000..c4dd04a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3394_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3395 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3395 new file mode 100644 index 0000000..1c39fc1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3395 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33966 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33966 new file mode 100644 index 0000000..1269a98 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33966 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33966_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33966_fsm new file mode 100644 index 0000000..b893c11 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33966_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33966_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33966_vm new file mode 100644 index 0000000..c06a293 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33966_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33970 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33970 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33971 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33971 new file mode 100644 index 0000000..46ca3db Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33971 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33972 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33972 new file mode 100644 index 0000000..7e7e203 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33972 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33980 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33980 new file mode 100644 index 0000000..5743021 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33980 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33981 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33981 new file mode 100644 index 0000000..76a47fb Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/33981 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34025 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34025 new file mode 100644 index 0000000..50d625b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34025 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34025_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34025_fsm new file mode 100644 index 0000000..dcb70f3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34025_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34025_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34025_vm new file mode 100644 index 0000000..ccd5617 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34025_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34029 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34029 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34030 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34030 new file mode 100644 index 0000000..0d27d16 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34030 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34031 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34031 new file mode 100644 index 0000000..935b232 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34031 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34039 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34039 new file mode 100644 index 0000000..edcf191 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34039 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34040 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34040 new file mode 100644 index 0000000..9654c64 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34040 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34085 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34085 new file mode 100644 index 0000000..e5bb961 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34085 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34085_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34085_fsm new file mode 100644 index 0000000..c97a3bf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34085_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34085_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34085_vm new file mode 100644 index 0000000..8305716 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34085_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34089 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34089 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34090 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34090 new file mode 100644 index 0000000..afb53a1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34090 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34091 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34091 new file mode 100644 index 0000000..3aa6345 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34091 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34099 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34099 new file mode 100644 index 0000000..03557d5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34099 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34100 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34100 new file mode 100644 index 0000000..2b80cd9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34100 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34142 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34142 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34143 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34143 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34144 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34144 new file mode 100644 index 0000000..5a0565d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/34144 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3429 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3429 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3430 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3430 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3431 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3431 new file mode 100644 index 0000000..8a6528d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3431 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3433 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3433 new file mode 100644 index 0000000..0c4736b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3433 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3439 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3439 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3440 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3440 new file mode 100644 index 0000000..1174715 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3440 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3455 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3455 new file mode 100644 index 0000000..13f5842 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3455 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3456 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3456 new file mode 100644 index 0000000..afca583 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3456 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3456_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3456_fsm new file mode 100644 index 0000000..308a42f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3456_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3456_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3456_vm new file mode 100644 index 0000000..f70ad69 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3456_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3466 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3466 new file mode 100644 index 0000000..bdd385e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3466 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3467 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3467 new file mode 100644 index 0000000..79b9487 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3467 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3468 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3468 new file mode 100644 index 0000000..4e74129 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3468 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3501 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3501 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3502 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3502 new file mode 100644 index 0000000..94e5e8e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3502 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3503 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3503 new file mode 100644 index 0000000..df8e743 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3503 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3534 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3534 new file mode 100644 index 0000000..98d4854 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3534 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3541 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3541 new file mode 100644 index 0000000..40869ad Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3541 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3541_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3541_fsm new file mode 100644 index 0000000..a3a2de4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3541_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3541_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3541_vm new file mode 100644 index 0000000..4b9c711 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3541_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3542 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3542 new file mode 100644 index 0000000..ee21b6a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3542 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3574 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3574 new file mode 100644 index 0000000..418bbca Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3574 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3575 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3575 new file mode 100644 index 0000000..6addf86 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3575 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3576 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3576 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3596 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3596 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3597 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3597 new file mode 100644 index 0000000..71d2820 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3597 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3598 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3598 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3599 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3599 new file mode 100644 index 0000000..20c4969 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3599 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3600 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3600 new file mode 100644 index 0000000..3c7a21b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3600 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3600_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3600_fsm new file mode 100644 index 0000000..cebec19 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3600_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3600_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3600_vm new file mode 100644 index 0000000..3c90651 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3600_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3601 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3601 new file mode 100644 index 0000000..04c846e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3601 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3601_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3601_fsm new file mode 100644 index 0000000..7732d22 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3601_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3601_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3601_vm new file mode 100644 index 0000000..f178e59 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3601_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3602 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3602 new file mode 100644 index 0000000..6fa54cf Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3602 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3602_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3602_fsm new file mode 100644 index 0000000..d7897de Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3602_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3602_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3602_vm new file mode 100644 index 0000000..b635a1f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3602_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3603 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3603 new file mode 100644 index 0000000..c95eefa Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3603 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3603_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3603_fsm new file mode 100644 index 0000000..c28dd4f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3603_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3603_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3603_vm new file mode 100644 index 0000000..01260ef Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3603_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3604 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3604 new file mode 100644 index 0000000..ce4c466 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3604 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3605 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3605 new file mode 100644 index 0000000..038efba Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3605 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3606 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3606 new file mode 100644 index 0000000..de60e2f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3606 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3607 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3607 new file mode 100644 index 0000000..ff53735 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3607 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3608 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3608 new file mode 100644 index 0000000..f68abf8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3608 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3609 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3609 new file mode 100644 index 0000000..9b45e30 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3609 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3712 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3712 new file mode 100644 index 0000000..932f137 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3712 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3764 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3764 new file mode 100644 index 0000000..778b30a Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3764 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3764_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3764_fsm new file mode 100644 index 0000000..f64db4d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3764_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3764_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3764_vm new file mode 100644 index 0000000..5e07ce2 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3764_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3766 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3766 new file mode 100644 index 0000000..4a17862 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3766 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3767 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3767 new file mode 100644 index 0000000..e3ed16d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3767 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3997 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3997 new file mode 100644 index 0000000..3832f55 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/3997 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4143 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4143 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4144 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4144 new file mode 100644 index 0000000..178af33 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4144 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4145 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4145 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4146 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4146 new file mode 100644 index 0000000..bb603a6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4146 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4147 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4147 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4148 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4148 new file mode 100644 index 0000000..87c330b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4148 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4149 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4149 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4150 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4150 new file mode 100644 index 0000000..2085995 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4150 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4151 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4151 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4152 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4152 new file mode 100644 index 0000000..23407ab Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4152 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4153 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4153 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4154 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4154 new file mode 100644 index 0000000..edaed60 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4154 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4155 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4155 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4156 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4156 new file mode 100644 index 0000000..f0c50e4 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4156 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4157 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4157 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4158 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4158 new file mode 100644 index 0000000..d45296c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4158 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4159 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4159 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4160 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4160 new file mode 100644 index 0000000..e0fd4e1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4160 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4163 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4163 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4164 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4164 new file mode 100644 index 0000000..9a3435b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4164 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4165 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4165 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4166 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4166 new file mode 100644 index 0000000..be076db Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4166 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4167 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4167 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4168 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4168 new file mode 100644 index 0000000..976615c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4168 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4169 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4169 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4170 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4170 new file mode 100644 index 0000000..f33abe0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4170 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4171 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4171 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4172 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4172 new file mode 100644 index 0000000..bfa5606 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4172 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4173 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4173 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4174 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4174 new file mode 100644 index 0000000..8a80490 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/4174 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/5002 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/5002 new file mode 100644 index 0000000..480c6d1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/5002 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/548 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/548 new file mode 100644 index 0000000..9f21947 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/548 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/549 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/549 new file mode 100644 index 0000000..68efb3f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/549 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6102 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6102 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6104 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6104 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6106 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6106 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6110 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6110 new file mode 100644 index 0000000..536b80d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6110 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6111 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6111 new file mode 100644 index 0000000..3d22c94 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6111 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6112 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6112 new file mode 100644 index 0000000..9e47d5c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6112 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6113 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6113 new file mode 100644 index 0000000..4e57f5b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6113 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6117 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6117 new file mode 100644 index 0000000..296b14e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6117 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6175 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6176 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6176 new file mode 100644 index 0000000..a349a04 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/6176 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/826 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/826 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/827 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/827 new file mode 100644 index 0000000..86db9fe Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/827 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/828 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/828 new file mode 100644 index 0000000..4a52299 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/828 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/PG_VERSION b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/PG_VERSION new file mode 100644 index 0000000..8351c19 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/PG_VERSION @@ -0,0 +1 @@ +14 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/pg_filenode.map b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/pg_filenode.map new file mode 100644 index 0000000..193d78f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/pg_filenode.map differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/pg_internal.init b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/pg_internal.init new file mode 100644 index 0000000..763ad49 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/base/16384/pg_internal.init differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1213 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1213 new file mode 100644 index 0000000..eec8dc3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1213 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1213_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1213_fsm new file mode 100644 index 0000000..86074be Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1213_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1213_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1213_vm new file mode 100644 index 0000000..0caed61 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1213_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1214 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1214 new file mode 100644 index 0000000..6ed536e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1214 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1214_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1214_fsm new file mode 100644 index 0000000..81fa96e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1214_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1214_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1214_vm new file mode 100644 index 0000000..1406691 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1214_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1232 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1232 new file mode 100644 index 0000000..a6493f5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1232 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1233 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1233 new file mode 100644 index 0000000..5764580 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1233 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1260 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1260 new file mode 100644 index 0000000..cddb98d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1260 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1260_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1260_fsm new file mode 100644 index 0000000..016717f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1260_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1260_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1260_vm new file mode 100644 index 0000000..a2e45e0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1260_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1261 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1261 new file mode 100644 index 0000000..b6ff851 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1261 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1261_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1261_fsm new file mode 100644 index 0000000..7732d22 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1261_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1261_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1261_vm new file mode 100644 index 0000000..68929df Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1261_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1262 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1262 new file mode 100644 index 0000000..18d6653 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1262 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1262_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1262_fsm new file mode 100644 index 0000000..b49966f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1262_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1262_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1262_vm new file mode 100644 index 0000000..dc1d6ac Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/1262_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2396 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2396 new file mode 100644 index 0000000..8567e84 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2396 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2396_fsm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2396_fsm new file mode 100644 index 0000000..7a4f24f Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2396_fsm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2396_vm b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2396_vm new file mode 100644 index 0000000..180eca1 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2396_vm differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2397 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2397 new file mode 100644 index 0000000..9bdc8d0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2397 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2671 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2671 new file mode 100644 index 0000000..c65a548 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2671 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2672 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2672 new file mode 100644 index 0000000..8c08eb9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2672 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2676 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2676 new file mode 100644 index 0000000..36fd825 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2676 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2677 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2677 new file mode 100644 index 0000000..d4449ca Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2677 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2694 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2694 new file mode 100644 index 0000000..846464c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2694 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2695 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2695 new file mode 100644 index 0000000..abf6d41 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2695 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2697 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2697 new file mode 100644 index 0000000..f2091ee Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2697 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2698 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2698 new file mode 100644 index 0000000..20c5991 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2698 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2846 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2846 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2847 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2847 new file mode 100644 index 0000000..ff7b16b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2847 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2964 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2964 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2965 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2965 new file mode 100644 index 0000000..9630b15 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2965 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2966 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2966 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2967 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2967 new file mode 100644 index 0000000..e25cac6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/2967 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/3592 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/3592 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/3593 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/3593 new file mode 100644 index 0000000..29c042c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/3593 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4060 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4060 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4061 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4061 new file mode 100644 index 0000000..3c59393 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4061 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4175 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4175 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4176 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4176 new file mode 100644 index 0000000..cc3544c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4176 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4177 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4177 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4178 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4178 new file mode 100644 index 0000000..cf50fc6 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4178 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4181 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4181 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4182 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4182 new file mode 100644 index 0000000..8634d77 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4182 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4183 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4183 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4184 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4184 new file mode 100644 index 0000000..0b345c8 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4184 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4185 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4185 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4186 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4186 new file mode 100644 index 0000000..6d7545b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/4186 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6000 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6000 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6001 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6001 new file mode 100644 index 0000000..ed048fa Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6001 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6002 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6002 new file mode 100644 index 0000000..8f0fa32 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6002 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6100 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6100 new file mode 100644 index 0000000..e69de29 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6114 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6114 new file mode 100644 index 0000000..8fb4dcd Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6114 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6115 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6115 new file mode 100644 index 0000000..8bc0135 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/6115 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/pg_control b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/pg_control new file mode 100644 index 0000000..9ac124c Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/pg_control differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/pg_filenode.map b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/pg_filenode.map new file mode 100644 index 0000000..ec4cded Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/pg_filenode.map differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/pg_internal.init b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/pg_internal.init new file mode 100644 index 0000000..6ffd49b Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/global/pg_internal.init differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_hba.conf b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_hba.conf new file mode 100644 index 0000000..4e202d3 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_hba.conf @@ -0,0 +1,100 @@ +# PostgreSQL Client Authentication Configuration File +# =================================================== +# +# Refer to the "Client Authentication" section in the PostgreSQL +# documentation for a complete description of this file. A short +# synopsis follows. +# +# This file controls: which hosts are allowed to connect, how clients +# are authenticated, which PostgreSQL user names they can use, which +# databases they can access. Records take one of these forms: +# +# local DATABASE USER METHOD [OPTIONS] +# host DATABASE USER ADDRESS METHOD [OPTIONS] +# hostssl DATABASE USER ADDRESS METHOD [OPTIONS] +# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS] +# hostgssenc DATABASE USER ADDRESS METHOD [OPTIONS] +# hostnogssenc DATABASE USER ADDRESS METHOD [OPTIONS] +# +# (The uppercase items must be replaced by actual values.) +# +# The first field is the connection type: +# - "local" is a Unix-domain socket +# - "host" is a TCP/IP socket (encrypted or not) +# - "hostssl" is a TCP/IP socket that is SSL-encrypted +# - "hostnossl" is a TCP/IP socket that is not SSL-encrypted +# - "hostgssenc" is a TCP/IP socket that is GSSAPI-encrypted +# - "hostnogssenc" is a TCP/IP socket that is not GSSAPI-encrypted +# +# DATABASE can be "all", "sameuser", "samerole", "replication", a +# database name, or a comma-separated list thereof. The "all" +# keyword does not match "replication". Access to replication +# must be enabled in a separate record (see example below). +# +# USER can be "all", a user name, a group name prefixed with "+", or a +# comma-separated list thereof. In both the DATABASE and USER fields +# you can also write a file name prefixed with "@" to include names +# from a separate file. +# +# ADDRESS specifies the set of hosts the record matches. It can be a +# host name, or it is made up of an IP address and a CIDR mask that is +# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that +# specifies the number of significant bits in the mask. A host name +# that starts with a dot (.) matches a suffix of the actual host name. +# Alternatively, you can write an IP address and netmask in separate +# columns to specify the set of hosts. Instead of a CIDR-address, you +# can write "samehost" to match any of the server's own IP addresses, +# or "samenet" to match any address in any subnet that the server is +# directly connected to. +# +# METHOD can be "trust", "reject", "md5", "password", "scram-sha-256", +# "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert". +# Note that "password" sends passwords in clear text; "md5" or +# "scram-sha-256" are preferred since they send encrypted passwords. +# +# OPTIONS are a set of options for the authentication in the format +# NAME=VALUE. The available options depend on the different +# authentication methods -- refer to the "Client Authentication" +# section in the documentation for a list of which options are +# available for which authentication methods. +# +# Database and user names containing spaces, commas, quotes and other +# special characters must be quoted. Quoting one of the keywords +# "all", "sameuser", "samerole" or "replication" makes the name lose +# its special character, and just match a database or username with +# that name. +# +# This file is read on server startup and when the server receives a +# SIGHUP signal. If you edit the file on a running system, you have to +# SIGHUP the server for the changes to take effect, run "pg_ctl reload", +# or execute "SELECT pg_reload_conf()". +# +# Put your actual configuration here +# ---------------------------------- +# +# If you want to allow non-local connections, you need to add more +# "host" records. In that case you will also need to make PostgreSQL +# listen on a non-local interface via the listen_addresses +# configuration parameter, or via the -i or -h command line switches. + +# CAUTION: Configuring the system for local "trust" authentication +# allows any local user to connect as any PostgreSQL user, including +# the database superuser. If you do not trust all your local users, +# use another authentication method. + + +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all trust +# IPv4 local connections: +host all all 127.0.0.1/32 trust +# IPv6 local connections: +host all all ::1/128 trust +# Allow replication connections from localhost, by a user with the +# replication privilege. +local replication all trust +host replication all 127.0.0.1/32 trust +host replication all ::1/128 trust + +host all all all scram-sha-256 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_ident.conf b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_ident.conf new file mode 100644 index 0000000..a5870e6 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_ident.conf @@ -0,0 +1,42 @@ +# PostgreSQL User Name Maps +# ========================= +# +# Refer to the PostgreSQL documentation, chapter "Client +# Authentication" for a complete description. A short synopsis +# follows. +# +# This file controls PostgreSQL user name mapping. It maps external +# user names to their corresponding PostgreSQL user names. Records +# are of the form: +# +# MAPNAME SYSTEM-USERNAME PG-USERNAME +# +# (The uppercase quantities must be replaced by actual values.) +# +# MAPNAME is the (otherwise freely chosen) map name that was used in +# pg_hba.conf. SYSTEM-USERNAME is the detected user name of the +# client. PG-USERNAME is the requested PostgreSQL user name. The +# existence of a record specifies that SYSTEM-USERNAME may connect as +# PG-USERNAME. +# +# If SYSTEM-USERNAME starts with a slash (/), it will be treated as a +# regular expression. Optionally this can contain a capture (a +# parenthesized subexpression). The substring matching the capture +# will be substituted for \1 (backslash-one) if present in +# PG-USERNAME. +# +# Multiple maps may be specified in this file and used by pg_hba.conf. +# +# No map names are defined in the default configuration. If all +# system user names and PostgreSQL user names are the same, you don't +# need anything in this file. +# +# This file is read on server startup and when the postmaster receives +# a SIGHUP signal. If you edit the file on a running system, you have +# to SIGHUP the postmaster for the changes to take effect. You can +# use "pg_ctl reload" to do that. + +# Put your actual configuration here +# ---------------------------------- + +# MAPNAME SYSTEM-USERNAME PG-USERNAME diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_logical/replorigin_checkpoint b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_logical/replorigin_checkpoint new file mode 100644 index 0000000..ec451b0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_logical/replorigin_checkpoint differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_multixact/members/0000 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_multixact/members/0000 new file mode 100644 index 0000000..7add1d3 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_multixact/members/0000 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_multixact/offsets/0000 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_multixact/offsets/0000 new file mode 100644 index 0000000..98db17e Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_multixact/offsets/0000 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/db_0.stat b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/db_0.stat new file mode 100644 index 0000000..28decc0 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/db_0.stat differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/db_13823.stat b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/db_13823.stat new file mode 100644 index 0000000..b55d100 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/db_13823.stat differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/db_16384.stat b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/db_16384.stat new file mode 100644 index 0000000..443409d Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/db_16384.stat differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/global.stat b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/global.stat new file mode 100644 index 0000000..10f3da5 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_stat_tmp/global.stat differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_subtrans/0000 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_subtrans/0000 new file mode 100644 index 0000000..17139c9 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_subtrans/0000 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_wal/000000010000000000000063 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_wal/000000010000000000000063 new file mode 100644 index 0000000..1a966fa Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_wal/000000010000000000000063 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_wal/000000010000000000000064 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_wal/000000010000000000000064 new file mode 100644 index 0000000..f275829 Binary files /dev/null and b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_wal/000000010000000000000064 differ diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_xact/0000 b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_xact/0000 new file mode 100644 index 0000000..07f7167 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/pg_xact/0000 @@ -0,0 +1 @@ +@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU \ No newline at end of file diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postgresql.auto.conf b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postgresql.auto.conf new file mode 100644 index 0000000..af7125e --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postgresql.auto.conf @@ -0,0 +1,2 @@ +# Do not edit this file manually! +# It will be overwritten by the ALTER SYSTEM command. diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postgresql.conf b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postgresql.conf new file mode 100644 index 0000000..3d2daa5 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postgresql.conf @@ -0,0 +1,796 @@ +# ----------------------------- +# PostgreSQL configuration file +# ----------------------------- +# +# This file consists of lines of the form: +# +# name = value +# +# (The "=" is optional.) Whitespace may be used. Comments are introduced with +# "#" anywhere on a line. The complete list of parameter names and allowed +# values can be found in the PostgreSQL documentation. +# +# The commented-out settings shown in this file represent the default values. +# Re-commenting a setting is NOT sufficient to revert it to the default value; +# you need to reload the server. +# +# This file is read on server startup and when the server receives a SIGHUP +# signal. If you edit the file on a running system, you have to SIGHUP the +# server for the changes to take effect, run "pg_ctl reload", or execute +# "SELECT pg_reload_conf()". Some parameters, which are marked below, +# require a server shutdown and restart to take effect. +# +# Any parameter can also be given as a command-line option to the server, e.g., +# "postgres -c log_connections=on". Some parameters can be changed at run time +# with the "SET" SQL command. +# +# Memory units: B = bytes Time units: us = microseconds +# kB = kilobytes ms = milliseconds +# MB = megabytes s = seconds +# GB = gigabytes min = minutes +# TB = terabytes h = hours +# d = days + + +#------------------------------------------------------------------------------ +# FILE LOCATIONS +#------------------------------------------------------------------------------ + +# The default values of these variables are driven from the -D command-line +# option or PGDATA environment variable, represented here as ConfigDir. + +#data_directory = 'ConfigDir' # use data in another directory + # (change requires restart) +#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file + # (change requires restart) +#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file + # (change requires restart) + +# If external_pid_file is not explicitly set, no extra PID file is written. +#external_pid_file = '' # write an extra PID file + # (change requires restart) + + +#------------------------------------------------------------------------------ +# CONNECTIONS AND AUTHENTICATION +#------------------------------------------------------------------------------ + +# - Connection Settings - + +listen_addresses = '*' + # comma-separated list of addresses; + # defaults to 'localhost'; use '*' for all + # (change requires restart) +#port = 5432 # (change requires restart) +max_connections = 100 # (change requires restart) +#superuser_reserved_connections = 3 # (change requires restart) +#unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories + # (change requires restart) +#unix_socket_group = '' # (change requires restart) +#unix_socket_permissions = 0777 # begin with 0 to use octal notation + # (change requires restart) +#bonjour = off # advertise server via Bonjour + # (change requires restart) +#bonjour_name = '' # defaults to the computer name + # (change requires restart) + +# - TCP settings - +# see "man tcp" for details + +#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; + # 0 selects the system default +#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; + # 0 selects the system default +#tcp_keepalives_count = 0 # TCP_KEEPCNT; + # 0 selects the system default +#tcp_user_timeout = 0 # TCP_USER_TIMEOUT, in milliseconds; + # 0 selects the system default + +#client_connection_check_interval = 0 # time between checks for client + # disconnection while running queries; + # 0 for never + +# - Authentication - + +#authentication_timeout = 1min # 1s-600s +#password_encryption = scram-sha-256 # scram-sha-256 or md5 +#db_user_namespace = off + +# GSSAPI using Kerberos +#krb_server_keyfile = 'FILE:${sysconfdir}/krb5.keytab' +#krb_caseins_users = off + +# - SSL - + +#ssl = off +#ssl_ca_file = '' +#ssl_cert_file = 'server.crt' +#ssl_crl_file = '' +#ssl_crl_dir = '' +#ssl_key_file = 'server.key' +#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers +#ssl_prefer_server_ciphers = on +#ssl_ecdh_curve = 'prime256v1' +#ssl_min_protocol_version = 'TLSv1.2' +#ssl_max_protocol_version = '' +#ssl_dh_params_file = '' +#ssl_passphrase_command = '' +#ssl_passphrase_command_supports_reload = off + + +#------------------------------------------------------------------------------ +# RESOURCE USAGE (except WAL) +#------------------------------------------------------------------------------ + +# - Memory - + +shared_buffers = 128MB # min 128kB + # (change requires restart) +#huge_pages = try # on, off, or try + # (change requires restart) +#huge_page_size = 0 # zero for system default + # (change requires restart) +#temp_buffers = 8MB # min 800kB +#max_prepared_transactions = 0 # zero disables the feature + # (change requires restart) +# Caution: it is not advisable to set max_prepared_transactions nonzero unless +# you actively intend to use prepared transactions. +#work_mem = 4MB # min 64kB +#hash_mem_multiplier = 1.0 # 1-1000.0 multiplier on hash table work_mem +#maintenance_work_mem = 64MB # min 1MB +#autovacuum_work_mem = -1 # min 1MB, or -1 to use maintenance_work_mem +#logical_decoding_work_mem = 64MB # min 64kB +#max_stack_depth = 2MB # min 100kB +#shared_memory_type = mmap # the default is the first option + # supported by the operating system: + # mmap + # sysv + # windows + # (change requires restart) +dynamic_shared_memory_type = posix # the default is the first option + # supported by the operating system: + # posix + # sysv + # windows + # mmap + # (change requires restart) +#min_dynamic_shared_memory = 0MB # (change requires restart) + +# - Disk - + +#temp_file_limit = -1 # limits per-process temp file space + # in kilobytes, or -1 for no limit + +# - Kernel Resources - + +#max_files_per_process = 1000 # min 64 + # (change requires restart) + +# - Cost-Based Vacuum Delay - + +#vacuum_cost_delay = 0 # 0-100 milliseconds (0 disables) +#vacuum_cost_page_hit = 1 # 0-10000 credits +#vacuum_cost_page_miss = 2 # 0-10000 credits +#vacuum_cost_page_dirty = 20 # 0-10000 credits +#vacuum_cost_limit = 200 # 1-10000 credits + +# - Background Writer - + +#bgwriter_delay = 200ms # 10-10000ms between rounds +#bgwriter_lru_maxpages = 100 # max buffers written/round, 0 disables +#bgwriter_lru_multiplier = 2.0 # 0-10.0 multiplier on buffers scanned/round +#bgwriter_flush_after = 512kB # measured in pages, 0 disables + +# - Asynchronous Behavior - + +#backend_flush_after = 0 # measured in pages, 0 disables +#effective_io_concurrency = 1 # 1-1000; 0 disables prefetching +#maintenance_io_concurrency = 10 # 1-1000; 0 disables prefetching +#max_worker_processes = 8 # (change requires restart) +#max_parallel_workers_per_gather = 2 # limited by max_parallel_workers +#max_parallel_maintenance_workers = 2 # limited by max_parallel_workers +#max_parallel_workers = 8 # number of max_worker_processes that + # can be used in parallel operations +#parallel_leader_participation = on +#old_snapshot_threshold = -1 # 1min-60d; -1 disables; 0 is immediate + # (change requires restart) + + +#------------------------------------------------------------------------------ +# WRITE-AHEAD LOG +#------------------------------------------------------------------------------ + +# - Settings - + +#wal_level = replica # minimal, replica, or logical + # (change requires restart) +#fsync = on # flush data to disk for crash safety + # (turning this off can cause + # unrecoverable data corruption) +#synchronous_commit = on # synchronization level; + # off, local, remote_write, remote_apply, or on +#wal_sync_method = fsync # the default is the first option + # supported by the operating system: + # open_datasync + # fdatasync (default on Linux and FreeBSD) + # fsync + # fsync_writethrough + # open_sync +#full_page_writes = on # recover from partial page writes +#wal_log_hints = off # also do full page writes of non-critical updates + # (change requires restart) +#wal_compression = off # enable compression of full-page writes +#wal_init_zero = on # zero-fill new WAL files +#wal_recycle = on # recycle WAL files +#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers + # (change requires restart) +#wal_writer_delay = 200ms # 1-10000 milliseconds +#wal_writer_flush_after = 1MB # measured in pages, 0 disables +#wal_skip_threshold = 2MB + +#commit_delay = 0 # range 0-100000, in microseconds +#commit_siblings = 5 # range 1-1000 + +# - Checkpoints - + +#checkpoint_timeout = 5min # range 30s-1d +#checkpoint_completion_target = 0.9 # checkpoint target duration, 0.0 - 1.0 +#checkpoint_flush_after = 256kB # measured in pages, 0 disables +#checkpoint_warning = 30s # 0 disables +max_wal_size = 1GB +min_wal_size = 80MB + +# - Archiving - + +#archive_mode = off # enables archiving; off, on, or always + # (change requires restart) +#archive_command = '' # command to use to archive a logfile segment + # placeholders: %p = path of file to archive + # %f = file name only + # e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f' +#archive_timeout = 0 # force a logfile segment switch after this + # number of seconds; 0 disables + +# - Archive Recovery - + +# These are only used in recovery mode. + +#restore_command = '' # command to use to restore an archived logfile segment + # placeholders: %p = path of file to restore + # %f = file name only + # e.g. 'cp /mnt/server/archivedir/%f %p' +#archive_cleanup_command = '' # command to execute at every restartpoint +#recovery_end_command = '' # command to execute at completion of recovery + +# - Recovery Target - + +# Set these only when performing a targeted recovery. + +#recovery_target = '' # 'immediate' to end recovery as soon as a + # consistent state is reached + # (change requires restart) +#recovery_target_name = '' # the named restore point to which recovery will proceed + # (change requires restart) +#recovery_target_time = '' # the time stamp up to which recovery will proceed + # (change requires restart) +#recovery_target_xid = '' # the transaction ID up to which recovery will proceed + # (change requires restart) +#recovery_target_lsn = '' # the WAL LSN up to which recovery will proceed + # (change requires restart) +#recovery_target_inclusive = on # Specifies whether to stop: + # just after the specified recovery target (on) + # just before the recovery target (off) + # (change requires restart) +#recovery_target_timeline = 'latest' # 'current', 'latest', or timeline ID + # (change requires restart) +#recovery_target_action = 'pause' # 'pause', 'promote', 'shutdown' + # (change requires restart) + + +#------------------------------------------------------------------------------ +# REPLICATION +#------------------------------------------------------------------------------ + +# - Sending Servers - + +# Set these on the primary and on any standby that will send replication data. + +#max_wal_senders = 10 # max number of walsender processes + # (change requires restart) +#max_replication_slots = 10 # max number of replication slots + # (change requires restart) +#wal_keep_size = 0 # in megabytes; 0 disables +#max_slot_wal_keep_size = -1 # in megabytes; -1 disables +#wal_sender_timeout = 60s # in milliseconds; 0 disables +#track_commit_timestamp = off # collect timestamp of transaction commit + # (change requires restart) + +# - Primary Server - + +# These settings are ignored on a standby server. + +#synchronous_standby_names = '' # standby servers that provide sync rep + # method to choose sync standbys, number of sync standbys, + # and comma-separated list of application_name + # from standby(s); '*' = all +#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed + +# - Standby Servers - + +# These settings are ignored on a primary server. + +#primary_conninfo = '' # connection string to sending server +#primary_slot_name = '' # replication slot on sending server +#promote_trigger_file = '' # file name whose presence ends recovery +#hot_standby = on # "off" disallows queries during recovery + # (change requires restart) +#max_standby_archive_delay = 30s # max delay before canceling queries + # when reading WAL from archive; + # -1 allows indefinite delay +#max_standby_streaming_delay = 30s # max delay before canceling queries + # when reading streaming WAL; + # -1 allows indefinite delay +#wal_receiver_create_temp_slot = off # create temp slot if primary_slot_name + # is not set +#wal_receiver_status_interval = 10s # send replies at least this often + # 0 disables +#hot_standby_feedback = off # send info from standby to prevent + # query conflicts +#wal_receiver_timeout = 60s # time that receiver waits for + # communication from primary + # in milliseconds; 0 disables +#wal_retrieve_retry_interval = 5s # time to wait before retrying to + # retrieve WAL after a failed attempt +#recovery_min_apply_delay = 0 # minimum delay for applying changes during recovery + +# - Subscribers - + +# These settings are ignored on a publisher. + +#max_logical_replication_workers = 4 # taken from max_worker_processes + # (change requires restart) +#max_sync_workers_per_subscription = 2 # taken from max_logical_replication_workers + + +#------------------------------------------------------------------------------ +# QUERY TUNING +#------------------------------------------------------------------------------ + +# - Planner Method Configuration - + +#enable_async_append = on +#enable_bitmapscan = on +#enable_gathermerge = on +#enable_hashagg = on +#enable_hashjoin = on +#enable_incremental_sort = on +#enable_indexscan = on +#enable_indexonlyscan = on +#enable_material = on +#enable_memoize = on +#enable_mergejoin = on +#enable_nestloop = on +#enable_parallel_append = on +#enable_parallel_hash = on +#enable_partition_pruning = on +#enable_partitionwise_join = off +#enable_partitionwise_aggregate = off +#enable_seqscan = on +#enable_sort = on +#enable_tidscan = on + +# - Planner Cost Constants - + +#seq_page_cost = 1.0 # measured on an arbitrary scale +#random_page_cost = 4.0 # same scale as above +#cpu_tuple_cost = 0.01 # same scale as above +#cpu_index_tuple_cost = 0.005 # same scale as above +#cpu_operator_cost = 0.0025 # same scale as above +#parallel_setup_cost = 1000.0 # same scale as above +#parallel_tuple_cost = 0.1 # same scale as above +#min_parallel_table_scan_size = 8MB +#min_parallel_index_scan_size = 512kB +#effective_cache_size = 4GB + +#jit_above_cost = 100000 # perform JIT compilation if available + # and query more expensive than this; + # -1 disables +#jit_inline_above_cost = 500000 # inline small functions if query is + # more expensive than this; -1 disables +#jit_optimize_above_cost = 500000 # use expensive JIT optimizations if + # query is more expensive than this; + # -1 disables + +# - Genetic Query Optimizer - + +#geqo = on +#geqo_threshold = 12 +#geqo_effort = 5 # range 1-10 +#geqo_pool_size = 0 # selects default based on effort +#geqo_generations = 0 # selects default based on effort +#geqo_selection_bias = 2.0 # range 1.5-2.0 +#geqo_seed = 0.0 # range 0.0-1.0 + +# - Other Planner Options - + +#default_statistics_target = 100 # range 1-10000 +#constraint_exclusion = partition # on, off, or partition +#cursor_tuple_fraction = 0.1 # range 0.0-1.0 +#from_collapse_limit = 8 +#jit = on # allow JIT compilation +#join_collapse_limit = 8 # 1 disables collapsing of explicit + # JOIN clauses +#plan_cache_mode = auto # auto, force_generic_plan or + # force_custom_plan + + +#------------------------------------------------------------------------------ +# REPORTING AND LOGGING +#------------------------------------------------------------------------------ + +# - Where to Log - + +#log_destination = 'stderr' # Valid values are combinations of + # stderr, csvlog, syslog, and eventlog, + # depending on platform. csvlog + # requires logging_collector to be on. + +# This is used when logging to stderr: +#logging_collector = off # Enable capturing of stderr and csvlog + # into log files. Required to be on for + # csvlogs. + # (change requires restart) + +# These are only used if logging_collector is on: +#log_directory = 'log' # directory where log files are written, + # can be absolute or relative to PGDATA +#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern, + # can include strftime() escapes +#log_file_mode = 0600 # creation mode for log files, + # begin with 0 to use octal notation +#log_rotation_age = 1d # Automatic rotation of logfiles will + # happen after that time. 0 disables. +#log_rotation_size = 10MB # Automatic rotation of logfiles will + # happen after that much log output. + # 0 disables. +#log_truncate_on_rotation = off # If on, an existing log file with the + # same name as the new log file will be + # truncated rather than appended to. + # But such truncation only occurs on + # time-driven rotation, not on restarts + # or size-driven rotation. Default is + # off, meaning append to existing files + # in all cases. + +# These are relevant when logging to syslog: +#syslog_facility = 'LOCAL0' +#syslog_ident = 'postgres' +#syslog_sequence_numbers = on +#syslog_split_messages = on + +# This is only relevant when logging to eventlog (Windows): +# (change requires restart) +#event_source = 'PostgreSQL' + +# - When to Log - + +#log_min_messages = warning # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic + +#log_min_error_statement = error # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic (effectively off) + +#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements + # and their durations, > 0 logs only + # statements running at least this number + # of milliseconds + +#log_min_duration_sample = -1 # -1 is disabled, 0 logs a sample of statements + # and their durations, > 0 logs only a sample of + # statements running at least this number + # of milliseconds; + # sample fraction is determined by log_statement_sample_rate + +#log_statement_sample_rate = 1.0 # fraction of logged statements exceeding + # log_min_duration_sample to be logged; + # 1.0 logs all such statements, 0.0 never logs + + +#log_transaction_sample_rate = 0.0 # fraction of transactions whose statements + # are logged regardless of their duration; 1.0 logs all + # statements from all transactions, 0.0 never logs + +# - What to Log - + +#debug_print_parse = off +#debug_print_rewritten = off +#debug_print_plan = off +#debug_pretty_print = on +#log_autovacuum_min_duration = -1 # log autovacuum activity; + # -1 disables, 0 logs all actions and + # their durations, > 0 logs only + # actions running at least this number + # of milliseconds. +#log_checkpoints = off +#log_connections = off +#log_disconnections = off +#log_duration = off +#log_error_verbosity = default # terse, default, or verbose messages +#log_hostname = off +#log_line_prefix = '%m [%p] ' # special values: + # %a = application name + # %u = user name + # %d = database name + # %r = remote host and port + # %h = remote host + # %b = backend type + # %p = process ID + # %P = process ID of parallel group leader + # %t = timestamp without milliseconds + # %m = timestamp with milliseconds + # %n = timestamp with milliseconds (as a Unix epoch) + # %Q = query ID (0 if none or not computed) + # %i = command tag + # %e = SQL state + # %c = session ID + # %l = session line number + # %s = session start timestamp + # %v = virtual transaction ID + # %x = transaction ID (0 if none) + # %q = stop here in non-session + # processes + # %% = '%' + # e.g. '<%u%%%d> ' +#log_lock_waits = off # log lock waits >= deadlock_timeout +#log_recovery_conflict_waits = off # log standby recovery conflict waits + # >= deadlock_timeout +#log_parameter_max_length = -1 # when logging statements, limit logged + # bind-parameter values to N bytes; + # -1 means print in full, 0 disables +#log_parameter_max_length_on_error = 0 # when logging an error, limit logged + # bind-parameter values to N bytes; + # -1 means print in full, 0 disables +#log_statement = 'none' # none, ddl, mod, all +#log_replication_commands = off +#log_temp_files = -1 # log temporary files equal or larger + # than the specified size in kilobytes; + # -1 disables, 0 logs all temp files +log_timezone = 'UTC' + + +#------------------------------------------------------------------------------ +# PROCESS TITLE +#------------------------------------------------------------------------------ + +#cluster_name = '' # added to process titles if nonempty + # (change requires restart) +#update_process_title = on + + +#------------------------------------------------------------------------------ +# STATISTICS +#------------------------------------------------------------------------------ + +# - Query and Index Statistics Collector - + +#track_activities = on +#track_activity_query_size = 1024 # (change requires restart) +#track_counts = on +#track_io_timing = off +#track_wal_io_timing = off +#track_functions = none # none, pl, all +#stats_temp_directory = 'pg_stat_tmp' + + +# - Monitoring - + +#compute_query_id = auto +#log_statement_stats = off +#log_parser_stats = off +#log_planner_stats = off +#log_executor_stats = off + + +#------------------------------------------------------------------------------ +# AUTOVACUUM +#------------------------------------------------------------------------------ + +#autovacuum = on # Enable autovacuum subprocess? 'on' + # requires track_counts to also be on. +#autovacuum_max_workers = 3 # max number of autovacuum subprocesses + # (change requires restart) +#autovacuum_naptime = 1min # time between autovacuum runs +#autovacuum_vacuum_threshold = 50 # min number of row updates before + # vacuum +#autovacuum_vacuum_insert_threshold = 1000 # min number of row inserts + # before vacuum; -1 disables insert + # vacuums +#autovacuum_analyze_threshold = 50 # min number of row updates before + # analyze +#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum +#autovacuum_vacuum_insert_scale_factor = 0.2 # fraction of inserts over table + # size before insert vacuum +#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze +#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum + # (change requires restart) +#autovacuum_multixact_freeze_max_age = 400000000 # maximum multixact age + # before forced vacuum + # (change requires restart) +#autovacuum_vacuum_cost_delay = 2ms # default vacuum cost delay for + # autovacuum, in milliseconds; + # -1 means use vacuum_cost_delay +#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for + # autovacuum, -1 means use + # vacuum_cost_limit + + +#------------------------------------------------------------------------------ +# CLIENT CONNECTION DEFAULTS +#------------------------------------------------------------------------------ + +# - Statement Behavior - + +#client_min_messages = notice # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # log + # notice + # warning + # error +#search_path = '"$user", public' # schema names +#row_security = on +#default_table_access_method = 'heap' +#default_tablespace = '' # a tablespace name, '' uses the default +#default_toast_compression = 'pglz' # 'pglz' or 'lz4' +#temp_tablespaces = '' # a list of tablespace names, '' uses + # only default tablespace +#check_function_bodies = on +#default_transaction_isolation = 'read committed' +#default_transaction_read_only = off +#default_transaction_deferrable = off +#session_replication_role = 'origin' +#statement_timeout = 0 # in milliseconds, 0 is disabled +#lock_timeout = 0 # in milliseconds, 0 is disabled +#idle_in_transaction_session_timeout = 0 # in milliseconds, 0 is disabled +#idle_session_timeout = 0 # in milliseconds, 0 is disabled +#vacuum_freeze_table_age = 150000000 +#vacuum_freeze_min_age = 50000000 +#vacuum_failsafe_age = 1600000000 +#vacuum_multixact_freeze_table_age = 150000000 +#vacuum_multixact_freeze_min_age = 5000000 +#vacuum_multixact_failsafe_age = 1600000000 +#bytea_output = 'hex' # hex, escape +#xmlbinary = 'base64' +#xmloption = 'content' +#gin_pending_list_limit = 4MB + +# - Locale and Formatting - + +datestyle = 'iso, mdy' +#intervalstyle = 'postgres' +timezone = 'UTC' +#timezone_abbreviations = 'Default' # Select the set of available time zone + # abbreviations. Currently, there are + # Default + # Australia (historical usage) + # India + # You can create your own file in + # share/timezonesets/. +#extra_float_digits = 1 # min -15, max 3; any value >0 actually + # selects precise output mode +#client_encoding = sql_ascii # actually, defaults to database + # encoding + +# These settings are initialized by initdb, but they can be changed. +lc_messages = 'en_US.utf8' # locale for system error message + # strings +lc_monetary = 'en_US.utf8' # locale for monetary formatting +lc_numeric = 'en_US.utf8' # locale for number formatting +lc_time = 'en_US.utf8' # locale for time formatting + +# default configuration for text search +default_text_search_config = 'pg_catalog.english' + +# - Shared Library Preloading - + +#local_preload_libraries = '' +#session_preload_libraries = '' +shared_preload_libraries = 'timescaledb' # (change requires restart) +#jit_provider = 'llvmjit' # JIT library to use + +# - Other Defaults - + +#dynamic_library_path = '$libdir' +#gin_fuzzy_search_limit = 0 + + +#------------------------------------------------------------------------------ +# LOCK MANAGEMENT +#------------------------------------------------------------------------------ + +#deadlock_timeout = 1s +#max_locks_per_transaction = 64 # min 10 + # (change requires restart) +#max_pred_locks_per_transaction = 64 # min 10 + # (change requires restart) +#max_pred_locks_per_relation = -2 # negative values mean + # (max_pred_locks_per_transaction + # / -max_pred_locks_per_relation) - 1 +#max_pred_locks_per_page = 2 # min 0 + + +#------------------------------------------------------------------------------ +# VERSION AND PLATFORM COMPATIBILITY +#------------------------------------------------------------------------------ + +# - Previous PostgreSQL Versions - + +#array_nulls = on +#backslash_quote = safe_encoding # on, off, or safe_encoding +#escape_string_warning = on +#lo_compat_privileges = off +#quote_all_identifiers = off +#standard_conforming_strings = on +#synchronize_seqscans = on + +# - Other Platforms and Clients - + +#transform_null_equals = off + + +#------------------------------------------------------------------------------ +# ERROR HANDLING +#------------------------------------------------------------------------------ + +#exit_on_error = off # terminate session on any error? +#restart_after_crash = on # reinitialize after backend crash? +#data_sync_retry = off # retry or panic on failure to fsync + # data? + # (change requires restart) +#recovery_init_sync_method = fsync # fsync, syncfs (Linux 5.8+) + + +#------------------------------------------------------------------------------ +# CONFIG FILE INCLUDES +#------------------------------------------------------------------------------ + +# These options allow settings to be loaded from files other than the +# default postgresql.conf. Note that these are directives, not variable +# assignments, so they can usefully be given more than once. + +#include_dir = '...' # include files ending in '.conf' from + # a directory, e.g., 'conf.d' +#include_if_exists = '...' # include file only if it exists +#include = '...' # include file + + +#------------------------------------------------------------------------------ +# CUSTOMIZED OPTIONS +#------------------------------------------------------------------------------ + +# Add settings for extensions here diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postmaster.opts b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postmaster.opts new file mode 100644 index 0000000..77c8b5d --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postmaster.opts @@ -0,0 +1 @@ +/usr/local/bin/postgres diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postmaster.pid b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postmaster.pid new file mode 100644 index 0000000..952ebb2 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/data/postmaster.pid @@ -0,0 +1,8 @@ +1 +/var/lib/postgresql/data +1774802535 +5432 +/var/run/postgresql +* + 1766139 0 +ready diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/db/init/001_init.sql b/docs/ADDRESS/tz/1/eco-aip-backend/db/init/001_init.sql new file mode 100644 index 0000000..fa15574 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/db/init/001_init.sql @@ -0,0 +1,47 @@ +CREATE EXTENSION IF NOT EXISTS timescaledb; + +CREATE TABLE IF NOT EXISTS stations ( + id SERIAL PRIMARY KEY, + provider_uid INTEGER NOT NULL UNIQUE, + name TEXT, + lat DOUBLE PRECISION, + lon DOUBLE PRECISION, + source_meta JSONB, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS measurements ( + station_id INTEGER NOT NULL REFERENCES stations(id), + observed_ts TIMESTAMPTZ NOT NULL, + ingested_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(), + aqi INTEGER, + raw JSONB, + PRIMARY KEY (station_id, observed_ts) +); + +SELECT create_hypertable('measurements', 'observed_ts', if_not_exists => TRUE); + +CREATE INDEX IF NOT EXISTS measurements_observed_ts_idx + ON measurements (observed_ts DESC); + +CREATE INDEX IF NOT EXISTS measurements_station_ts_idx + ON measurements (station_id, observed_ts DESC); + +CREATE TABLE IF NOT EXISTS anomalies ( + id BIGSERIAL PRIMARY KEY, + station_id INTEGER REFERENCES stations(id), + type TEXT NOT NULL, + severity INTEGER, + confidence DOUBLE PRECISION, + ts_start TIMESTAMPTZ NOT NULL, + ts_end TIMESTAMPTZ, + metric TEXT, + evidence JSONB, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS anomalies_ts_start_idx + ON anomalies (ts_start DESC); + +CREATE INDEX IF NOT EXISTS anomalies_station_ts_idx + ON anomalies (station_id, ts_start DESC); diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/docker-compose.yml b/docs/ADDRESS/tz/1/eco-aip-backend/docker-compose.yml new file mode 100644 index 0000000..8ceb1f9 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/docker-compose.yml @@ -0,0 +1,50 @@ +services: + db: + image: timescale/timescaledb:latest-pg14 + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + TZ: UTC + PGTZ: UTC + ports: + - "${DB_PORT:-9500}:5432" + volumes: + - ./db/data:/var/lib/postgresql/data + - ./db/init:/docker-entrypoint-initdb.d:ro + restart: unless-stopped + + api: + build: ./api + environment: + DATABASE_URL: ${DATABASE_URL} + CORS_ORIGINS: ${CORS_ORIGINS} + LLM_BASE_URL: ${LLM_BASE_URL} + LLM_MODEL: ${LLM_MODEL} + LLM_TIMEOUT: ${LLM_TIMEOUT} + LLM_MAX_STATIONS: ${LLM_MAX_STATIONS} + ports: + - "${API_PORT:-9501}:8000" + depends_on: + - db + restart: unless-stopped + + worker: + build: ./worker + environment: + DATABASE_URL: ${DATABASE_URL} + POLL_SECONDS: ${POLL_SECONDS} + WAQI_TOKEN: ${WAQI_TOKEN} + WAQI_BASE_URL: ${WAQI_BASE_URL} + BBOX_LAT1: ${BBOX_LAT1} + BBOX_LON1: ${BBOX_LON1} + BBOX_LAT2: ${BBOX_LAT2} + BBOX_LON2: ${BBOX_LON2} + DETECT_DELAY_MINUTES: ${DETECT_DELAY_MINUTES} + DETECT_STUCK_MINUTES: ${DETECT_STUCK_MINUTES} + DETECT_SPIKE_DELTA: ${DETECT_SPIKE_DELTA} + DETECT_SPIKE_WINDOW_MINUTES: ${DETECT_SPIKE_WINDOW_MINUTES} + DETECT_DEDUP_MINUTES: ${DETECT_DEDUP_MINUTES} + depends_on: + - db + restart: unless-stopped diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/worker/Dockerfile b/docs/ADDRESS/tz/1/eco-aip-backend/worker/Dockerfile new file mode 100644 index 0000000..bad96ed --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/worker/Dockerfile @@ -0,0 +1,13 @@ +FROM python:3.11-slim + +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONUNBUFFERED=1 + +WORKDIR /app + +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +COPY worker.py ./ + +CMD ["python", "worker.py"] diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/worker/requirements.txt b/docs/ADDRESS/tz/1/eco-aip-backend/worker/requirements.txt new file mode 100644 index 0000000..3b469ea --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/worker/requirements.txt @@ -0,0 +1,2 @@ +psycopg2-binary==2.9.9 +requests==2.32.3 diff --git a/docs/ADDRESS/tz/1/eco-aip-backend/worker/worker.py b/docs/ADDRESS/tz/1/eco-aip-backend/worker/worker.py new file mode 100644 index 0000000..f9eb343 --- /dev/null +++ b/docs/ADDRESS/tz/1/eco-aip-backend/worker/worker.py @@ -0,0 +1,446 @@ +import os +import time +from datetime import datetime, timedelta, timezone + +import psycopg2 +from psycopg2.extras import Json +import requests + + +DATABASE_URL = os.environ.get("DATABASE_URL") +WAQI_TOKEN = os.environ.get("WAQI_TOKEN") +WAQI_BASE_URL = os.environ.get("WAQI_BASE_URL", "https://api.waqi.info") + + +def get_int_env(name, default): + value = os.environ.get(name) + if value is None or value == "": + return default + try: + return int(value) + except ValueError as exc: + raise RuntimeError(f"Invalid int for {name}: {value}") from exc + + +DELAY_MINUTES = get_int_env("DETECT_DELAY_MINUTES", 60) +STUCK_MINUTES = get_int_env("DETECT_STUCK_MINUTES", 120) +SPIKE_DELTA = get_int_env("DETECT_SPIKE_DELTA", 20) +SPIKE_WINDOW_MINUTES = get_int_env("DETECT_SPIKE_WINDOW_MINUTES", 60) +DEDUP_MINUTES = get_int_env("DETECT_DEDUP_MINUTES", 60) + + +def run_query(): + if not DATABASE_URL: + raise RuntimeError("DATABASE_URL is not set") + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + cur.execute("SELECT 1;") + cur.fetchone() + + +def wait_for_db(): + while True: + try: + run_query() + print("db ready", flush=True) + return + except Exception as exc: + print(f"db not ready: {exc}", flush=True) + time.sleep(5) + + +def get_env_float(name): + value = os.environ.get(name) + if value is None or value == "": + raise RuntimeError(f"{name} is not set") + return float(value) + + +def parse_tz_offset(tz_str): + if not tz_str: + return timezone.utc + if tz_str in ("UTC", "GMT", "Z"): + return timezone.utc + if tz_str.startswith(("+", "-")): + sign = 1 if tz_str[0] == "+" else -1 + parts = tz_str[1:].split(":") + try: + hours = int(parts[0]) + minutes = int(parts[1]) if len(parts) > 1 else 0 + except ValueError: + return timezone.utc + return timezone(sign * timedelta(hours=hours, minutes=minutes)) + return timezone.utc + + +def parse_time_string(stime, tzinfo): + if not stime: + return None + try: + if "T" not in stime and " " in stime: + stime = stime.replace(" ", "T") + dt = datetime.fromisoformat(stime) + except ValueError: + try: + dt = datetime.strptime(stime, "%Y-%m-%d %H:%M:%S") + except ValueError: + return None + if dt.tzinfo is None: + dt = dt.replace(tzinfo=tzinfo) + return dt.astimezone(timezone.utc) + + +def dt_iso(dt): + if dt is None: + return None + return dt.astimezone(timezone.utc).isoformat().replace("+00:00", "Z") + + +def parse_observed_ts(station_time): + tzinfo = timezone.utc + stime = None + if isinstance(station_time, dict): + tzinfo = parse_tz_offset(station_time.get("tz")) + stime = ( + station_time.get("stime") + or station_time.get("s") + or station_time.get("vtime") + ) + elif isinstance(station_time, str): + stime = station_time + parsed = parse_time_string(stime, tzinfo) + return parsed or datetime.now(timezone.utc) + + +def parse_aqi(value): + if value is None or value == "-": + return None + try: + return int(value) + except (TypeError, ValueError): + return None + + +def build_waqi_url(): + if not WAQI_TOKEN: + raise RuntimeError("WAQI_TOKEN is not set") + lat1 = get_env_float("BBOX_LAT1") + lon1 = get_env_float("BBOX_LON1") + lat2 = get_env_float("BBOX_LAT2") + lon2 = get_env_float("BBOX_LON2") + return ( + f"{WAQI_BASE_URL}/map/bounds/?latlng=" + f"{lat1},{lon1},{lat2},{lon2}&token={WAQI_TOKEN}" + ) + + +def fetch_waqi(): + url = build_waqi_url() + last_error = None + for attempt in range(3): + try: + response = requests.get(url, timeout=20) + response.raise_for_status() + payload = response.json() + if payload.get("status") != "ok": + raise RuntimeError( + f"waqi status {payload.get('status')}: {payload.get('data')}" + ) + return payload.get("data", []) + except Exception as exc: + last_error = exc + time.sleep(2 * (attempt + 1)) + raise RuntimeError(f"WAQI fetch failed: {last_error}") + + +def upsert_station(cur, provider_uid, name, lat, lon, source_meta): + cur.execute( + """ + INSERT INTO stations (provider_uid, name, lat, lon, source_meta) + VALUES (%s, %s, %s, %s, %s) + ON CONFLICT (provider_uid) DO UPDATE SET + name = EXCLUDED.name, + lat = EXCLUDED.lat, + lon = EXCLUDED.lon, + source_meta = EXCLUDED.source_meta + RETURNING id; + """, + (provider_uid, name, lat, lon, Json(source_meta)), + ) + return cur.fetchone()[0] + + +def insert_measurement(cur, station_id, observed_ts, ingested_ts, aqi, raw): + cur.execute( + """ + INSERT INTO measurements (station_id, observed_ts, ingested_ts, aqi, raw) + VALUES (%s, %s, %s, %s, %s) + ON CONFLICT (station_id, observed_ts) DO NOTHING; + """, + (station_id, observed_ts, ingested_ts, aqi, Json(raw)), + ) + return cur.rowcount + + +def anomaly_exists(cur, station_id, anomaly_type, metric, since_ts): + cur.execute( + """ + SELECT 1 + FROM anomalies + WHERE station_id = %s AND type = %s AND metric = %s AND created_at >= %s + LIMIT 1; + """, + (station_id, anomaly_type, metric, since_ts), + ) + return cur.fetchone() is not None + + +def insert_anomaly( + cur, + station_id, + anomaly_type, + severity, + confidence, + ts_start, + ts_end, + metric, + evidence, +): + cur.execute( + """ + INSERT INTO anomalies ( + station_id, type, severity, confidence, ts_start, ts_end, metric, evidence + ) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s); + """, + ( + station_id, + anomaly_type, + severity, + confidence, + ts_start, + ts_end, + metric, + Json(evidence), + ), + ) + + +def detect_delay(cur, now): + delay_threshold = timedelta(minutes=DELAY_MINUTES) + dedup_since = now - timedelta(minutes=DEDUP_MINUTES) + inserted = 0 + cur.execute( + """ + SELECT s.id, MAX(m.observed_ts) AS last_ts + FROM stations s + LEFT JOIN measurements m ON m.station_id = s.id + GROUP BY s.id; + """ + ) + for station_id, last_ts in cur.fetchall(): + if last_ts is None: + continue + age = now - last_ts + if age <= delay_threshold: + continue + if anomaly_exists(cur, station_id, "delay", "delay", dedup_since): + continue + age_minutes = int(age.total_seconds() / 60) + severity = min(100, int((age_minutes / DELAY_MINUTES) * 50) + 50) + evidence = { + "last_observed_ts": dt_iso(last_ts), + "age_minutes": age_minutes, + "threshold_minutes": DELAY_MINUTES, + } + insert_anomaly( + cur, + station_id, + "delay", + severity, + 0.8, + last_ts, + now, + "delay", + evidence, + ) + inserted += 1 + return inserted + + +def detect_stuck(cur, now): + window = timedelta(minutes=STUCK_MINUTES) + window_start = now - window + dedup_since = now - timedelta(minutes=DEDUP_MINUTES) + inserted = 0 + cur.execute( + """ + SELECT station_id, + MIN(aqi) AS min_aqi, + MAX(aqi) AS max_aqi, + COUNT(*) AS count_aqi, + MIN(observed_ts) AS min_ts, + MAX(observed_ts) AS max_ts + FROM measurements + WHERE observed_ts >= %s AND observed_ts <= %s AND aqi IS NOT NULL + GROUP BY station_id; + """, + (window_start, now), + ) + min_span_seconds = max(0, (STUCK_MINUTES - 5) * 60) + for station_id, min_aqi, max_aqi, count_aqi, min_ts, max_ts in cur.fetchall(): + if count_aqi < 3: + continue + if min_aqi != max_aqi: + continue + if max_ts is None or min_ts is None: + continue + span_seconds = (max_ts - min_ts).total_seconds() + if span_seconds < min_span_seconds: + continue + if anomaly_exists(cur, station_id, "stuck", "aqi", dedup_since): + continue + evidence = { + "value": int(min_aqi), + "window_minutes": STUCK_MINUTES, + "first_ts": dt_iso(min_ts), + "last_ts": dt_iso(max_ts), + "count": int(count_aqi), + } + insert_anomaly( + cur, + station_id, + "stuck", + 60, + 0.7, + min_ts, + max_ts, + "aqi", + evidence, + ) + inserted += 1 + return inserted + + +def detect_spike(cur, now): + window = timedelta(minutes=SPIKE_WINDOW_MINUTES) + dedup_since = now - timedelta(minutes=DEDUP_MINUTES) + inserted = 0 + cur.execute( + """ + SELECT DISTINCT ON (station_id) station_id, observed_ts, aqi + FROM measurements + WHERE aqi IS NOT NULL + ORDER BY station_id, observed_ts DESC; + """ + ) + rows = cur.fetchall() + for station_id, latest_ts, latest_aqi in rows: + target_ts = latest_ts - window + cur.execute( + """ + SELECT observed_ts, aqi + FROM measurements + WHERE station_id = %s AND aqi IS NOT NULL AND observed_ts <= %s + ORDER BY observed_ts DESC + LIMIT 1; + """, + (station_id, target_ts), + ) + prev = cur.fetchone() + if not prev: + continue + prev_ts, prev_aqi = prev + delta = latest_aqi - prev_aqi + if delta < SPIKE_DELTA: + continue + if anomaly_exists(cur, station_id, "spike", "aqi", dedup_since): + continue + severity = min(100, int((delta / SPIKE_DELTA) * 50) + 50) + evidence = { + "delta": int(delta), + "prev_aqi": int(prev_aqi), + "prev_ts": dt_iso(prev_ts), + "curr_aqi": int(latest_aqi), + "curr_ts": dt_iso(latest_ts), + "window_minutes": SPIKE_WINDOW_MINUTES, + } + insert_anomaly( + cur, + station_id, + "spike", + severity, + 0.9, + prev_ts, + latest_ts, + "aqi", + evidence, + ) + inserted += 1 + return inserted + + +def detect_anomalies(): + now = datetime.now(timezone.utc) + inserted = 0 + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + # delay anomalies disabled; "Устаревшие" handled in Overview + inserted += detect_stuck(cur, now) + inserted += detect_spike(cur, now) + print(f"anomalies inserted={inserted}", flush=True) + + +def ingest_once(): + data = fetch_waqi() + if not data: + print("waqi empty", flush=True) + return + ingested_ts = datetime.now(timezone.utc) + inserted_measurements = 0 + seen_stations = {} + with psycopg2.connect(DATABASE_URL) as conn: + with conn.cursor() as cur: + for item in data: + provider_uid = item.get("uid") + lat = item.get("lat") + lon = item.get("lon") + if provider_uid is None or lat is None or lon is None: + continue + station = item.get("station") or {} + name = station.get("name") + source_meta = station + if provider_uid in seen_stations: + station_id = seen_stations[provider_uid] + else: + station_id = upsert_station( + cur, provider_uid, name, lat, lon, source_meta + ) + seen_stations[provider_uid] = station_id + station_time = station.get("time") or item.get("time") + observed_ts = parse_observed_ts(station_time) + aqi = parse_aqi(item.get("aqi")) + inserted_measurements += insert_measurement( + cur, station_id, observed_ts, ingested_ts, aqi, item + ) + print( + f"waqi ingest: stations={len(seen_stations)} " + f"measurements_inserted={inserted_measurements}", + flush=True, + ) + + +def main(): + wait_for_db() + poll_seconds = int(os.environ.get("POLL_SECONDS", "300")) + while True: + try: + ingest_once() + detect_anomalies() + except Exception as exc: + print(f"ingest failed: {exc}", flush=True) + time.sleep(poll_seconds) + + +if __name__ == "__main__": + main() diff --git a/docs/ADDRESS/tz/TZ_address_query_runtime_V1_MCP.md b/docs/ADDRESS/tz/TZ_address_query_runtime_V1_MCP.md index ab9f1e3..4f7b39a 100644 --- a/docs/ADDRESS/tz/TZ_address_query_runtime_V1_MCP.md +++ b/docs/ADDRESS/tz/TZ_address_query_runtime_V1_MCP.md @@ -1,73 +1,73 @@ -TZ_address_query_runtime_V1_MCP.md +TZ_address_query_runtime_V1_MCP.md ## Project Sync Override (2026-03-29) -Этот документ используется в связке с: +Этот документ используется РІ СЃРІСЏР·РєРµ СЃ: - `docs/ADDRESS/tz/TZ_address_query_runtime_V1_MCP_SYNC_2026-03-29.md` -Критичная фиксация для текущего проекта: +Критичная фиксация для текущего проекта: -- мобильный интерфейс **не входит** в scope реализации; -- диалог ведется через существующую оболочку ассистента; -- поддерживаются короткие разговорные формулировки, но без отдельной mobile UI ветки. +- мобильный интерфейс **РЅРµ РІС…РѕРґРёС‚** РІ scope реализации; +- диалог ведется через существующую оболочку ассистента; +- поддерживаются короткие разговорные формулировки, РЅРѕ без отдельной mobile UI ветки. -## Контекст +## Контекст -По проекту уже подготовлен bootstrap-пакет в `docs/ADDRESS`: +РџРѕ проекту СѓР¶Рµ подготовлен bootstrap-пакет РІ `docs/ADDRESS`: -* карта сущностей по snapshot 2020; -* матрица address-сценариев; -* каталог фильтров и recipe draft; -* план интеграции `question_mode=address_query`; -* сводный bootstrap report. +* карта сущностей РїРѕ snapshot 2020; +* матрица address-сценариев; +* каталог фильтров Рё recipe draft; +* план интеграции `question_mode=address_query`; +* сводный bootstrap report. -Этот пакет считается baseline и **не переписывается с нуля**. -Новая задача — перейти от проектного пакета к **реальному внедрению runtime-слоя**. +Этот пакет считается baseline Рё **РЅРµ переписывается СЃ нуля**. +Новая задача — перейти РѕС‚ проектного пакета Рє **реальному внедрению runtime-слоя**. --- -## Ключевая архитектурная идея +## Ключевая архитектурная идея -Нужно реализовать **не изолированный address-остров**, а **общий semantic/query foundation layer**, который включает: +РќСѓР¶РЅРѕ реализовать **РЅРµ изолированный address-остров**, Р° **общий semantic/query foundation layer**, который включает: -1. каталог сущностей; -2. каталог фильтров; -3. нормализацию пользовательских названий; -4. resolver’ы name -> id / alias -> canonical entity; +1. каталог сущностей; +2. каталог фильтров; +3. нормализацию пользовательских названий; +4. resolver’ы name -> id / alias -> canonical entity; 5. whitelist query recipes; -6. общий result contract. +6. общий result contract. -На первом этапе этот foundation layer используется для `question_mode=address_query`. +РќР° первом этапе этот foundation layer используется для `question_mode=address_query`. -В будущем этот же слой должен быть пригоден для: +Р’ будущем этот Р¶Рµ слой должен быть пригоден для: -* deep-analysis маршрутов, +* deep-analysis маршрутов, * controlled drilldown, -* guided factual reasoning поверх live/MCP. +* guided factual reasoning поверх live/MCP. --- -## Главная цель этапа +## Главная цель этапа -Реализовать V1 отдельного runtime-контура для быстрых адресных вопросов к 1С через MCP, при этом: +Реализовать V1 отдельного runtime-контура для быстрых адресных РІРѕРїСЂРѕСЃРѕРІ Рє 1РЎ через MCP, РїСЂРё этом: -* **не ломать** существующий deep-analysis pipeline; -* **не дублировать** сущностную модель в двух местах; -* **не открывать** свободный natural-language query builder; -* дать пользователю в текущей оболочке ассистента возможность задавать короткие поисковые вопросы типа: +* **РЅРµ ломать** существующий deep-analysis pipeline; +* **РЅРµ дублировать** сущностную модель РІ РґРІСѓС… местах; +* **РЅРµ открывать** свободный natural-language query builder; +* дать пользователю РІ текущей оболочке ассистента возможность задавать короткие поисковые РІРѕРїСЂРѕСЃС‹ типа: - * “кто должен нам на сегодня” - * “покажи хвосты по альфе” - * “найди платежи по договору такому-то” - * “проверь, какие документы формируют остаток” - * “по 60 счету что висит на текущую дату” + * “кто должен нам РЅР° сегодня” + * “покажи хвосты РїРѕ альфе” + * “найди платежи РїРѕ РґРѕРіРѕРІРѕСЂСѓ такому-то” + * “проверь, какие документы формируют остаток” + * “по 60 счету что РІРёСЃРёС‚ РЅР° текущую дату” --- -## Что уже считать входными материалами +## Что СѓР¶Рµ считать входными материалами -Перед началом реализации использовать как source of truth следующие документы из `docs/ADDRESS/address_query/`: +Перед началом реализации использовать как source of truth следующие документы РёР· `docs/ADDRESS/address_query/`: * `entity_map_1c_2020.md` * `address_scenario_matrix.md` @@ -75,23 +75,23 @@ TZ_address_query_runtime_V1_MCP.md * `runtime_integration_plan.md` * `address_query_bootstrap_report_2026-03-29.md` -Нужно опираться на них, а не проектировать заново поверх пустого места. +РќСѓР¶РЅРѕ опираться РЅР° РЅРёС…, Р° РЅРµ проектировать заново поверх пустого места. --- -# 1. Что нужно реализовать +# 1. Что РЅСѓР¶РЅРѕ реализовать -## 1.1. Общий semantic/query foundation layer +## 1.1. Общий semantic/query foundation layer -Нужно ввести общий слой, который станет основой для address-runtime. +РќСѓР¶РЅРѕ ввести общий слой, который станет РѕСЃРЅРѕРІРѕР№ для address-runtime. -### В состав foundation layer должны войти: +### Р’ состав foundation layer должны войти: #### A. Entity Registry -Единый реестр сущностей, доступных для запроса. +Единый реестр сущностей, доступных для запроса. -Для каждой сущности: +Для каждой сущности: * `entity_family` * `entity_name` @@ -107,35 +107,35 @@ TZ_address_query_runtime_V1_MCP.md #### B. Alias / Label Normalization Layer -Нужно предусмотреть слой нормализации пользовательских названий. +РќСѓР¶РЅРѕ предусмотреть слой нормализации пользовательских названий. -Например: +Например: -* “контрагент” -* “договор” -* “60 счет” -* “реализация” -* “платежка” -* “банковская выписка” -* “хвосты” -* “долг” -* “дебиторка” -* “кредиторка” +* “контрагент” +* “договор” +* “60 счет” +* “реализация” +* “платежка” +* “банковская выписка” +* “хвосты” +* “долг” +* “дебиторка” +* “кредиторка” -Должны приводиться к каноническим сущностям / filter tokens / intents. +Должны приводиться Рє каноническим сущностям / filter tokens / intents. -Отдельно учесть: +Отдельно учесть: -* декодирование mojibake-labels из snapshot mapping; -* синонимы; -* бухгалтерские разговорные формулировки; -* краткие разговорные запросы без строгой терминологии. +* декодирование mojibake-labels РёР· snapshot mapping; +* СЃРёРЅРѕРЅРёРјС‹; +* бухгалтерские разговорные формулировки; +* краткие разговорные запросы без строгой терминологии. #### C. Resolver Layer -Нужны resolver’ы, которые переводят слова пользователя в реальные объекты. +РќСѓР¶РЅС‹ resolver’ы, которые переводят слова пользователя РІ реальные объекты. -Минимально: +Минимально: * `counterpartyResolver` * `contractResolver` @@ -144,7 +144,7 @@ TZ_address_query_runtime_V1_MCP.md * `documentTypeResolver` * `bankAccountResolver` -Выход: +Выход: * `resolved_value` * `resolved_id/ref` @@ -153,9 +153,9 @@ TZ_address_query_runtime_V1_MCP.md #### D. Filter Catalog -Единый каталог поддерживаемых фильтров. +Единый каталог поддерживаемых фильтров. -Минимум: +РњРёРЅРёРјСѓРј: * `as_of_date` * `period_from` @@ -174,9 +174,9 @@ TZ_address_query_runtime_V1_MCP.md #### E. Recipe Catalog -Только whitelist recipes. +Только whitelist recipes. -Для каждого recipe: +Для каждого recipe: * `recipe_id` * `intent` @@ -192,7 +192,7 @@ TZ_address_query_runtime_V1_MCP.md #### F. Unified Result Contract -Единый контракт ответа: +Единый контракт ответа: * `FACTUAL_LIST` * `FACTUAL_SUMMARY` @@ -200,27 +200,27 @@ TZ_address_query_runtime_V1_MCP.md --- -# 2. Что нужно реализовать в runtime +# 2. Что РЅСѓР¶РЅРѕ реализовать РІ runtime -## 2.1. Отдельный `question_mode=address_query` +## 2.1. Отдельный `question_mode=address_query` -В текущий assistant pipeline добавить ранний mode-routing: +Р’ текущий assistant pipeline добавить ранний mode-routing: * `address_query` * `deep_analysis` * `unsupported` -### Правило +### Правило -Если вопрос относится к поисковому factual lookup, он должен идти в `address_query`. +Если РІРѕРїСЂРѕСЃ относится Рє РїРѕРёСЃРєРѕРІРѕРјСѓ factual lookup, РѕРЅ должен идти РІ `address_query`. -Если вопрос требует объяснения причин, доказательства, анализа ошибок учета или длинного reasoning — он должен уходить в deep-path. +Если РІРѕРїСЂРѕСЃ требует объяснения причин, доказательства, анализа ошибок учета или длинного reasoning — РѕРЅ должен уходить РІ deep-path. --- ## 2.2. Address intent resolver -Нужно реализовать определение address-intent. +РќСѓР¶РЅРѕ реализовать определение address-intent. ### P0 intents @@ -245,278 +245,278 @@ TZ_address_query_runtime_V1_MCP.md ## 2.3. Multi-query decomposition -Нужно учитывать, что пользователь может писать составные запросы в свободной разговорной форме. +РќСѓР¶РЅРѕ учитывать, что пользователь может писать составные запросы РІ СЃРІРѕР±РѕРґРЅРѕР№ разговорной форме. -Примеры: +Примеры: -* “покажи хвосты по альфе и отдельно по бете” -* “найди долг по договору 15 и покажи документы” -* “что по 60 счету и какие контрагенты там висят” -* “проверь оплаты за март и какие из них без договора” -* “по поставщикам кто должен и что формирует остаток” +* “покажи хвосты РїРѕ альфе Рё отдельно РїРѕ бете” +* “найди долг РїРѕ РґРѕРіРѕРІРѕСЂСѓ 15 Рё покажи документы” +* “что РїРѕ 60 счету Рё какие контрагенты там висят” +* “проверь оплаты Р·Р° март Рё какие РёР· РЅРёС… без договора” +* “по поставщикам кто должен Рё что формирует остаток” -Нужен `addressQueryDecomposer`, который умеет: +Нужен `addressQueryDecomposer`, который умеет: -1. определить, что вопрос составной; -2. разбить его на подзапросы; -3. проверить, что все части остаются в factual-search зоне; -4. выполнить их последовательно; -5. склеить ответ в один компактный output. +1. определить, что РІРѕРїСЂРѕСЃ составной; +2. разбить его РЅР° подзапросы; +3. проверить, что РІСЃРµ части остаются РІ factual-search Р·РѕРЅРµ; +4. выполнить РёС… последовательно; +5. склеить ответ РІ РѕРґРёРЅ компактный output. -Для V1 достаточно baseline-режима: +Для V1 достаточно baseline-режима: -* максимум 2 подзапроса; -* без сложной межподзапросной оркестрации; -* без скрытого перехода в reasoning-chain. +* максимум 2 подзапроса; +* без сложной межподзапросной оркестрации; +* без скрытого перехода РІ reasoning-chain. -Расширенная decomposition-логика фиксируется как V1.1. +Расширенная decomposition-логика фиксируется как V1.1. -### Важно +### Важно -Если составной вопрос требует уже reasoning-связки, а не просто нескольких factual lookup, нужно: +Если составной РІРѕРїСЂРѕСЃ требует СѓР¶Рµ reasoning-СЃРІСЏР·РєРё, Р° РЅРµ просто нескольких factual lookup, РЅСѓР¶РЅРѕ: -* либо честно ограничить ответ; -* либо переводить его в deep-path с явной пометкой. +* либо честно ограничить ответ; +* либо переводить его РІ deep-path СЃ СЏРІРЅРѕР№ пометкой. --- ## 2.4. Filter extraction + validation -Нужно выделять: +РќСѓР¶РЅРѕ выделять: -* явные фильтры; -* подразумеваемые фильтры; -* отсутствующие обязательные фильтры. +* явные фильтры; +* подразумеваемые фильтры; +* отсутствующие обязательные фильтры. -Например: +Например: -* “кто должен нам” -> нужен `as_of_date`, можно подставить `today` по умолчанию; -* “остаток по 60 за март” -> `account=60`, `period_from`, `period_to`; -* “документы по альфе” -> нужен resolver контрагента; -* “покажи хвосты” -> недостаточно фильтров, нужен scope. +* “кто должен нам” -> нужен `as_of_date`, РјРѕР¶РЅРѕ подставить `today` РїРѕ умолчанию; +* “остаток РїРѕ 60 Р·Р° март” -> `account=60`, `period_from`, `period_to`; +* “документы РїРѕ альфе” -> нужен resolver контрагента; +* “покажи хвосты” -> недостаточно фильтров, нужен scope. --- ## 2.5. MCP execution layer -Нужен выделенный `addressMcpExecutor`. +Нужен выделенный `addressMcpExecutor`. -### Правила: +### Правила: -* только whitelist recipes; +* только whitelist recipes; * read-only; * fixed sorting profiles; -* limit controlled by recipe, а не свободным текстом; +* limit controlled by recipe, Р° РЅРµ свободным текстом; * live-first; -* snapshot fallback только как explicit controlled mode, не silent. +* snapshot fallback только как explicit controlled mode, РЅРµ silent. --- -## 2.6. Answer composer под короткий factual-формат оболочки +## 2.6. Answer composer РїРѕРґ короткий factual-формат оболочки -Нужно сделать composer, ориентированный на компактный factual-ответ в текущей оболочке ассистента. +РќСѓР¶РЅРѕ сделать composer, ориентированный РЅР° компактный factual-ответ РІ текущей оболочке ассистента. -### Формат ответа должен уметь: +### Формат ответа должен уметь: -#### A. Короткий итог +#### A. Короткий итог -Например: +Например: -* “На сегодня найдено 12 контрагентов с дебиторкой, общий объем 1.54 млн ₽.” -* “По договору найдено 7 открытых позиций на 430 тыс. ₽.” +* “На сегодня найдено 12 контрагентов СЃ дебиторкой, общий объем 1.54 млн в‚Ѕ.” +* “По РґРѕРіРѕРІРѕСЂСѓ найдено 7 открытых позиций РЅР° 430 тыс. в‚Ѕ.” -#### B. Список top-строк +#### B. РЎРїРёСЃРѕРє top-строк -Например: +Например: -* контрагент -* сумма -* число документов +* контрагент +* СЃСѓРјРјР° +* число документов -#### C. Что можно уточнить дальше +#### C. Что РјРѕР¶РЅРѕ уточнить дальше -Например: +Например: -* “Можно показать документы по каждому контрагенту.” -* “Можно раскрыть остаток по документам.” -* “Можно отфильтровать по организации или периоду.” +* “Можно показать документы РїРѕ каждому контрагенту.” +* “Можно раскрыть остаток РїРѕ документам.” +* “Можно отфильтровать РїРѕ организации или периоду.” #### D. Honest limitation -Если фильтров не хватает: +Если фильтров РЅРµ хватает: -* “Недостаточно данных для точного поиска: не указан контрагент / договор / счет.” -* “Найдено несколько договоров с похожим названием, нужно уточнение.” +* “Недостаточно данных для точного РїРѕРёСЃРєР°: РЅРµ указан контрагент / РґРѕРіРѕРІРѕСЂ / счет.” +* “Найдено несколько РґРѕРіРѕРІРѕСЂРѕРІ СЃ РїРѕС…РѕР¶РёРј названием, РЅСѓР¶РЅРѕ уточнение.” --- -# 3. Важное архитектурное требование +# 3. Важное архитектурное требование -## Не делать “отдельные сущности” только под address-runtime +## РќРµ делать “отдельные сущности” только РїРѕРґ address-runtime -Вместо этого нужно: +Вместо этого РЅСѓР¶РЅРѕ: -* создать **единый semantic layer**; -* использовать его первым потребителем в `address_query`; -* оставить возможность потом подключить deep-path к тем же registry/resolver/filter primitives. +* создать **единый semantic layer**; +* использовать его первым потребителем РІ `address_query`; +* оставить возможность потом подключить deep-path Рє тем Р¶Рµ registry/resolver/filter primitives. -Иными словами: +Иными словами: -**address-query — это первый runtime-потребитель общего semantic/query слоя, а не отдельная параллельная модель мира.** +**address-query — это первый runtime-потребитель общего semantic/query слоя, Р° РЅРµ отдельная параллельная модель РјРёСЂР°.** --- -# 4. Список пользовательских вопросов, который нужно заложить в проект +# 4. РЎРїРёСЃРѕРє пользовательских РІРѕРїСЂРѕСЃРѕРІ, который РЅСѓР¶РЅРѕ заложить РІ проект -Нужно не просто реализовать intents, а подготовить **question bank**. +РќСѓР¶РЅРѕ РЅРµ просто реализовать intents, Р° подготовить **question bank**. -Создать отдельный файл, например: +Создать отдельный файл, например: * `docs/ADDRESS/address_query/question_bank_v1.md` -В нем нужно разложить реальные пользовательские формулировки. +Р’ нем РЅСѓР¶РЅРѕ разложить реальные пользовательские формулировки. --- -## 4.1. Группа A — задолженность и хвосты +## 4.1. Группа A — задолженность Рё хвосты -Примеры: +Примеры: -* кто должен нам на сегодня -* кому должны мы на сегодня -* какие хвосты висят -* покажи хвосты по контрагентам -* покажи хвосты по договору -* какие незакрытые позиции по альфе -* где висит дебиторка -* где висит кредиторка -* по каким контрагентам есть долг -* по каким договорам есть незакрытые расчеты -* какие открытые взаиморасчеты на текущую дату -* у кого самый большой долг перед нами -* кому больше всего должны мы +* кто должен нам РЅР° сегодня +* РєРѕРјСѓ должны РјС‹ РЅР° сегодня +* какие хвосты РІРёСЃСЏС‚ +* покажи хвосты РїРѕ контрагентам +* покажи хвосты РїРѕ РґРѕРіРѕРІРѕСЂСѓ +* какие незакрытые позиции РїРѕ альфе +* РіРґРµ РІРёСЃРёС‚ дебиторка +* РіРґРµ РІРёСЃРёС‚ кредиторка +* РїРѕ каким контрагентам есть долг +* РїРѕ каким договорам есть незакрытые расчеты +* какие открытые взаиморасчеты РЅР° текущую дату +* Сѓ РєРѕРіРѕ самый большой долг перед нами +* РєРѕРјСѓ больше всего должны РјС‹ --- -## 4.2. Группа B — счета и остатки +## 4.2. Группа B — счета Рё остатки -Примеры: +Примеры: -* какой остаток по 60 счету -* какой остаток по 62 на дату -* покажи остаток по счету 76 -* что висит на 60 счете -* что висит на 62 счете -* какие контрагенты формируют остаток по 60 -* какие документы формируют остаток по 62 -* оборот по 60 за март -* оборот по 62 за период -* по какому договору висит остаток на счете 60 +* какой остаток РїРѕ 60 счету +* какой остаток РїРѕ 62 РЅР° дату +* покажи остаток РїРѕ счету 76 +* что РІРёСЃРёС‚ РЅР° 60 счете +* что РІРёСЃРёС‚ РЅР° 62 счете +* какие контрагенты формируют остаток РїРѕ 60 +* какие документы формируют остаток РїРѕ 62 +* РѕР±РѕСЂРѕС‚ РїРѕ 60 Р·Р° март +* РѕР±РѕСЂРѕС‚ РїРѕ 62 Р·Р° период +* РїРѕ какому РґРѕРіРѕРІРѕСЂСѓ РІРёСЃРёС‚ остаток РЅР° счете 60 --- -## 4.3. Группа C — договоры +## 4.3. Группа C — РґРѕРіРѕРІРѕСЂС‹ -Примеры: +Примеры: -* какие договоры не закрыты -* покажи незакрытые договоры -* что по договору 15/24 -* какие хвосты по договору номер 15 -* есть ли долг по договору с альфой -* покажи открытые позиции по договору -* какие документы связаны с этим договором -* какие платежи были по договору -* что осталось незакрытым по договору +* какие РґРѕРіРѕРІРѕСЂС‹ РЅРµ закрыты +* покажи незакрытые РґРѕРіРѕРІРѕСЂС‹ +* что РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 +* какие хвосты РїРѕ РґРѕРіРѕРІРѕСЂСѓ номер 15 +* есть ли долг РїРѕ РґРѕРіРѕРІРѕСЂСѓ СЃ альфой +* покажи открытые позиции РїРѕ РґРѕРіРѕРІРѕСЂСѓ +* какие документы связаны СЃ этим РґРѕРіРѕРІРѕСЂРѕРј +* какие платежи были РїРѕ РґРѕРіРѕРІРѕСЂСѓ +* что осталось незакрытым РїРѕ РґРѕРіРѕРІРѕСЂСѓ --- -## 4.4. Группа D — документы +## 4.4. Группа D — документы -Примеры: +Примеры: -* найди документы по контрагенту альфа -* покажи документы по договору -* покажи платежки по альфе -* найди реализации за март -* найди поступления за февраль -* покажи списания с расчетного счета по контрагенту -* покажи поступления на расчетный счет по договору -* найди документ по номеру -* какие документы были 15 марта -* покажи последние документы по поставщику -* покажи неоплаченные документы -* покажи проведенные документы по организации +* найди документы РїРѕ контрагенту альфа +* покажи документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ +* покажи платежки РїРѕ альфе +* найди реализации Р·Р° март +* найди поступления Р·Р° февраль +* покажи списания СЃ расчетного счета РїРѕ контрагенту +* покажи поступления РЅР° расчетный счет РїРѕ РґРѕРіРѕРІРѕСЂСѓ +* найди документ РїРѕ номеру +* какие документы были 15 марта +* покажи последние документы РїРѕ поставщику +* покажи неоплаченные документы +* покажи проведенные документы РїРѕ организации --- -## 4.5. Группа E — bank / payment lookup +## 4.5. Группа E — bank / payment lookup -Примеры: +Примеры: -* какие платежи были по альфе -* какие списания были по договору -* были ли поступления от беты -* покажи банковские операции за неделю -* какие платежи ушли без договора -* какие поступления пришли по этому контрагенту -* найди оплату на сумму 150 тысяч -* покажи платежи по статье ддс +* какие платежи были РїРѕ альфе +* какие списания были РїРѕ РґРѕРіРѕРІРѕСЂСѓ +* были ли поступления РѕС‚ беты +* покажи банковские операции Р·Р° неделю +* какие платежи ушли без РґРѕРіРѕРІРѕСЂР° +* какие поступления пришли РїРѕ этому контрагенту +* найди оплату РЅР° СЃСѓРјРјСѓ 150 тысяч +* покажи платежи РїРѕ статье РґРґСЃ --- -## 4.6. Группа F — drilldown от агрегата к деталям +## 4.6. Группа F — drilldown РѕС‚ агрегата Рє деталям -Примеры: +Примеры: -* кто должен нам и какие документы это формируют -* что висит по альфе и покажи документы -* по 60 счету что висит и раскрой по документам -* покажи остаток по договору и документы под ним -* найди дебиторку и раскрой по договорам -* покажи кредиторку и раскрой по контрагентам +* кто должен нам Рё какие документы это формируют +* что РІРёСЃРёС‚ РїРѕ альфе Рё покажи документы +* РїРѕ 60 счету что РІРёСЃРёС‚ Рё раскрой РїРѕ документам +* покажи остаток РїРѕ РґРѕРіРѕРІРѕСЂСѓ Рё документы РїРѕРґ РЅРёРј +* найди дебиторку Рё раскрой РїРѕ договорам +* покажи кредиторку Рё раскрой РїРѕ контрагентам --- -## 4.7. Группа G — составные поисковые вопросы +## 4.7. Группа G — составные поисковые РІРѕРїСЂРѕСЃС‹ -Примеры: +Примеры: -* покажи хвосты по альфе и бете -* найди долг по договору и покажи документы -* кто должен нам и отдельно кому должны мы -* покажи остаток по 60 и кто его формирует -* найди платежи по альфе за март и отдельно поступления от нее -* покажи незакрытые договоры и по каждому сумму хвоста -* по контрагенту альфа покажи долг, договоры и последние документы +* покажи хвосты РїРѕ альфе Рё бете +* найди долг РїРѕ РґРѕРіРѕРІРѕСЂСѓ Рё покажи документы +* кто должен нам Рё отдельно РєРѕРјСѓ должны РјС‹ +* покажи остаток РїРѕ 60 Рё кто его формирует +* найди платежи РїРѕ альфе Р·Р° март Рё отдельно поступления РѕС‚ нее +* покажи незакрытые РґРѕРіРѕРІРѕСЂС‹ Рё РїРѕ каждому СЃСѓРјРјСѓ хвоста +* РїРѕ контрагенту альфа покажи долг, РґРѕРіРѕРІРѕСЂС‹ Рё последние документы --- -## 4.8. Группа H — check / verify формулировки, но still factual +## 4.8. Группа H — check / verify формулировки, РЅРѕ still factual -Нужно предусмотреть вопросы вида “проверь”, если они остаются в lookup-логике. +РќСѓР¶РЅРѕ предусмотреть РІРѕРїСЂРѕСЃС‹ РІРёРґР° “проверь”, если РѕРЅРё остаются РІ lookup-логике. -Примеры: +Примеры: -* проверь, есть ли долг по альфе -* проверь, есть ли незакрытые документы -* проверь, были ли платежи в марте -* проверь, что висит на 60 счете -* проверь, есть ли оплаты по договору -* проверь, какие документы формируют остаток +* проверь, есть ли долг РїРѕ альфе +* проверь, есть ли незакрытые документы +* проверь, были ли платежи РІ марте +* проверь, что РІРёСЃРёС‚ РЅР° 60 счете +* проверь, есть ли оплаты РїРѕ РґРѕРіРѕРІРѕСЂСѓ +* проверь, какие документы формируют остаток -### Важно +### Важно -Если “проверь” означает именно factual lookup — это address. -Если “проверь, правильно ли…” — это уже не address, а deeper reasoning. +Если “проверь” означает именно factual lookup — это address. +Если “проверь, правильно ли…” — это СѓР¶Рµ РЅРµ address, Р° deeper reasoning. --- -# 5. Что нужно реализовать в коде +# 5. Что РЅСѓР¶РЅРѕ реализовать РІ РєРѕРґРµ -## 5.1. Новые/обновляемые модули +## 5.1. Новые/обновляемые модули -Ожидаемый набор: +Ожидаемый набор: * `addressQueryService.ts` * `addressModeClassifier.ts` @@ -539,9 +539,9 @@ TZ_address_query_runtime_V1_MCP.md --- -## 5.2. Нормализованный debug contract +## 5.2. Нормализованный debug contract -Минимальный debug payload: +Минимальный debug payload: * `question_mode` * `address_intent` @@ -558,24 +558,24 @@ TZ_address_query_runtime_V1_MCP.md --- -## 5.3. Тесты +## 5.3. Тесты -Нужны тесты не только на intent, но и на разбор живых пользовательских формулировок. +РќСѓР¶РЅС‹ тесты РЅРµ только РЅР° intent, РЅРѕ Рё РЅР° разбор живых пользовательских формулировок. -### Минимум: +### РњРёРЅРёРјСѓРј: * 20 single-query tests * 15 filter extraction tests * 10 resolver ambiguity tests * 10 compound-query decomposition tests * 10 composer response tests -* 5 negative tests на unsafe/free-form query behavior +* 5 negative tests РЅР° unsafe/free-form query behavior --- -# 6. Что нужно создать в docs +# 6. Что РЅСѓР¶РЅРѕ создать РІ docs -Нужно дополнить пакет следующими файлами: +РќСѓР¶РЅРѕ дополнить пакет следующими файлами: * `question_bank_v1.md` * `semantic_layer_design.md` @@ -584,118 +584,119 @@ TZ_address_query_runtime_V1_MCP.md --- -# 7. Очередность выполнения +# 7. Очередность выполнения -## M0 — Contracts and Foundation Skeleton +## M0 — Contracts and Foundation Skeleton -На базе уже собранных docs оформить и завести в коде минимальные контракты: +РќР° базе СѓР¶Рµ собранных docs оформить Рё завести РІ РєРѕРґРµ минимальные контракты: * `question_mode` / `address_intent`; * filter schema; * recipe schema; * debug contract; -* P0 foundation skeleton (без поведенческих переключений). +* P0 foundation skeleton (без поведенческих переключений). -## M1 — Classifier + Intent + Filter Pipeline +## M1 — Classifier + Intent + Filter Pipeline -Реализовать: +Реализовать: * mode classifier; -* intent resolver для P0; +* intent resolver для P0; * filter extraction + validation; -* baseline compound decomposition (как указано в 2.3). +* baseline compound decomposition (как указано РІ 2.3). -## M2 — Recipe Selection + MCP Executor +## M2 — Recipe Selection + MCP Executor -Реализовать **recipe selection + MCP executor** для P0 с live-first политикой. +Реализовать **recipe selection + MCP executor** для P0 СЃ live-first политикой. -## M3 — Factual Composer + Debug +## M3 — Factual Composer + Debug -Реализовать **answer composer** под factual/shell-friendly output и стабилизировать debug payload. +Реализовать **answer composer** РїРѕРґ factual/shell-friendly output Рё стабилизировать debug payload. -## M4 — Live Acceptance Pack +## M4 — Live Acceptance Pack -Сделать **acceptance pack**: +Сделать **acceptance pack**: -* реальные тестовые вопросы; +* реальные тестовые РІРѕРїСЂРѕСЃС‹; * debug traces; -* примерные ответы; -* список ограничений. +* примерные ответы; +* СЃРїРёСЃРѕРє ограничений. --- -# 8. Что не входит в V1 +# 8. Что РЅРµ РІС…РѕРґРёС‚ РІ V1 -Не делать на этом этапе: +РќРµ делать РЅР° этом этапе: -* свободный query builder от LLM; -* доказательный бухгалтерский reasoning; -* объяснение причин расхождений; -* поиск ошибок учета; -* автоматическую интерпретацию НДС-логики; -* “универсальный доступ ко всем сущностям” без recipe/guardrails; -* silent fallback между snapshot/live. +* свободный query builder РѕС‚ LLM; +* доказательный бухгалтерский reasoning; +* объяснение причин расхождений; +* РїРѕРёСЃРє ошибок учета; +* автоматическую интерпретацию НДС-логики; +* “универсальный доступ РєРѕ всем сущностям” без recipe/guardrails; +* silent fallback между snapshot/live. --- -# 9. Критерии приемки +# 9. Критерии приемки -Задача считается выполненной, если: +Задача считается выполненной, если: -### Архитектурно +### Архитектурно -* `address_query` внедрен как отдельный runtime lane; -* deep-analysis path не деградировал; -* сущностная модель не продублирована в отдельный address-only мир; -* общий semantic/query foundation layer создан. +* `address_query` внедрен как отдельный runtime lane; +* deep-analysis path РЅРµ деградировал; +* сущностная модель РЅРµ продублирована РІ отдельный address-only РјРёСЂ; +* общий semantic/query foundation layer создан. -### Функционально +### Функционально -* P0 intents работают через MCP/live-first; -* resolver’ы умеют базово разруливать контрагентов/договоры/счета; -* составные factual-запросы поддержаны хотя бы в базовом виде; -* ответы укладываются в единый factual contract. +* P0 intents работают через MCP/live-first; +* resolver’ы умеют базово разруливать контрагентов/РґРѕРіРѕРІРѕСЂС‹/счета; +* составные factual-запросы поддержаны хотя Р±С‹ РІ базовом РІРёРґРµ; +* ответы укладываются РІ единый factual contract. ### UX -* короткие разговорные запросы разбираются стабильно; -* при нехватке фильтров система не фантазирует, а честно просит уточнение или возвращает `LIMITED_WITH_REASON`; -* ответ читабелен в текущей оболочке ассистента. +* короткие разговорные запросы разбираются стабильно; +* РїСЂРё нехватке фильтров система РЅРµ фантазирует, Р° честно РїСЂРѕСЃРёС‚ уточнение или возвращает `LIMITED_WITH_REASON`; +* ответ читабелен РІ текущей оболочке ассистента. -### Безопасность +### Безопасность -* только whitelist recipes; +* только whitelist recipes; * read-only MCP; -* никакой генерации свободного запроса LLM’ом. +* никакой генерации СЃРІРѕР±РѕРґРЅРѕРіРѕ запроса LLM’ом. --- -# 10. Что должно быть в финальном отчете по задаче +# 10. Что должно быть РІ финальном отчете РїРѕ задаче -В конце работы нужно явно показать: +Р’ конце работы РЅСѓР¶РЅРѕ СЏРІРЅРѕ показать: -1. какие модули добавлены; -2. какие контракты введены; -3. какие P0 и P1 intents реально поддержаны; -4. какие resolver’ы готовы; -5. как обрабатываются составные вопросы; -6. какие ограничения остались; -7. какие следующие шаги нужны для V1.1. +1. какие модули добавлены; +2. какие контракты введены; +3. какие P0 Рё P1 intents реально поддержаны; +4. какие resolver’ы готовы; +5. как обрабатываются составные РІРѕРїСЂРѕСЃС‹; +6. какие ограничения остались; +7. какие следующие шаги РЅСѓР¶РЅС‹ для V1.1. --- -# 11. Дополнительное указание +# 11. Дополнительное указание -При проектировании ориентироваться не только на “идеальные бухгалтерские формулировки”, но и на реальную разговорную подачу пользователя: +РџСЂРё проектировании ориентироваться РЅРµ только РЅР° “идеальные бухгалтерские формулировки”, РЅРѕ Рё РЅР° реальную разговорную подачу пользователя: -* коротко; -* обрывочно; -* без строгих терминов; -* с бытовыми словами; -* с запросами в стиле “найди”, “проверь”, “что висит”, “что по договору”, “покажи остаток”. +* коротко; +* обрывочно; +* без строгих терминов; +* СЃ бытовыми словами; +* СЃ запросами РІ стиле “найди”, “проверь”, “что висит”, “что РїРѕ договору”, “покажи остаток”. -Нужно проектировать слой так, чтобы он был полезен в простом повседневном интерфейсе, а не только в аналитическом desktop-flow. +РќСѓР¶РЅРѕ проектировать слой так, чтобы РѕРЅ был полезен РІ простом повседневном интерфейсе, Р° РЅРµ только РІ аналитическом desktop-flow. --- -Если нужно, следующим сообщением я могу сразу собрать это в ещё более прикладной вид: **короткий production-prompt для Codex** без объяснений, чтобы его можно было просто вставить в задачу. +Если РЅСѓР¶РЅРѕ, следующим сообщением СЏ РјРѕРіСѓ сразу собрать это РІ ещё более прикладной РІРёРґ: **короткий production-prompt для Codex** без объяснений, чтобы его РјРѕР¶РЅРѕ было просто вставить РІ задачу. + diff --git a/docs/ADDRESS/tz/address_query_prod_pack_2026-03-30/address_query_prod_pack_2026-03-30/query_paraphrase_bank_v2.md b/docs/ADDRESS/tz/address_query_prod_pack_2026-03-30/address_query_prod_pack_2026-03-30/query_paraphrase_bank_v2.md index f904b5f..264694a 100644 --- a/docs/ADDRESS/tz/address_query_prod_pack_2026-03-30/address_query_prod_pack_2026-03-30/query_paraphrase_bank_v2.md +++ b/docs/ADDRESS/tz/address_query_prod_pack_2026-03-30/address_query_prod_pack_2026-03-30/query_paraphrase_bank_v2.md @@ -1,359 +1,360 @@ -# Query Paraphrase Bank V2 — Address Query +# Query Paraphrase Bank V2 — Address Query -Дата: 2026-03-30 +Дата: 2026-03-30 -## Назначение +## Назначение -Этот файл нужен для массовой декомпозиции пользовательских запросов в canonical intent'ы. Для каждого intent даны вариации в разных стилях: нейтральный, бухгалтерский, разговорный, сокращенный, операционный. +Этот файл нужен для массовой декомпозиции пользовательских запросов РІ canonical intent'С‹. Для каждого intent даны вариации РІ разных стилях: нейтральный, бухгалтерский, разговорный, сокращенный, операционный. -## AQ-P0-01 — `list_open_contracts` +## AQ-P0-01 — `list_open_contracts` - domain: `contracts` - recipe: `address.open_contracts.by_asof` - required filters: `as_of_date` - optional filters: `organization, counterparty, limit, sort` -- goal: Показать незакрытые договоры на дату с суммами и контрагентом. +- goal: Показать незакрытые РґРѕРіРѕРІРѕСЂС‹ РЅР° дату СЃ суммами Рё контрагентом. -- какие договоры не закрыты на 2020-07-31 -- покажи незакрытые договоры на 2020-07-31 -- что из договоров висит открытым на 2020-07-31 -- есть ли открытые договоры на 2020-07-31 -- выгрузи договоры с остатком на 2020-07-31 -- по каким договорам на 2020-07-31 еще нет закрытия -- дай список незакрытых договоров на 2020-07-31 -- какие договоры остаются открытыми на 2020-07-31 -- какие договоры болтаются незакрытыми на 2020-07-31 -- покажи договоры, по которым есть хвост на 2020-07-31 -- какие договоры в базе не закрыты на 2020-07-31 -- что по открытым договорам на 2020-07-31 -- сформируй перечень открытых договоров на 2020-07-31 -- есть незакрытые договоры по состоянию на 2020-07-31 -- какие договоры не схлопнулись на 2020-07-31 -- по каким договорам висят остатки на 2020-07-31 -- какие договоры не сведены на 2020-07-31 -- открой договоры со сальдо на 2020-07-31 +- какие РґРѕРіРѕРІРѕСЂС‹ РЅРµ закрыты РЅР° 2020-07-31 +- покажи незакрытые РґРѕРіРѕРІРѕСЂС‹ РЅР° 2020-07-31 +- что РёР· РґРѕРіРѕРІРѕСЂРѕРІ РІРёСЃРёС‚ открытым РЅР° 2020-07-31 +- есть ли открытые РґРѕРіРѕРІРѕСЂС‹ РЅР° 2020-07-31 +- выгрузи РґРѕРіРѕРІРѕСЂС‹ СЃ остатком РЅР° 2020-07-31 +- РїРѕ каким договорам РЅР° 2020-07-31 еще нет закрытия +- дай СЃРїРёСЃРѕРє незакрытых РґРѕРіРѕРІРѕСЂРѕРІ РЅР° 2020-07-31 +- какие РґРѕРіРѕРІРѕСЂС‹ остаются открытыми РЅР° 2020-07-31 +- какие РґРѕРіРѕРІРѕСЂС‹ болтаются незакрытыми РЅР° 2020-07-31 +- покажи РґРѕРіРѕРІРѕСЂС‹, РїРѕ которым есть С…РІРѕСЃС‚ РЅР° 2020-07-31 +- какие РґРѕРіРѕРІРѕСЂС‹ РІ базе РЅРµ закрыты РЅР° 2020-07-31 +- что РїРѕ открытым договорам РЅР° 2020-07-31 +- сформируй перечень открытых РґРѕРіРѕРІРѕСЂРѕРІ РЅР° 2020-07-31 +- есть незакрытые РґРѕРіРѕРІРѕСЂС‹ РїРѕ состоянию РЅР° 2020-07-31 +- какие РґРѕРіРѕРІРѕСЂС‹ РЅРµ схлопнулись РЅР° 2020-07-31 +- РїРѕ каким договорам РІРёСЃСЏС‚ остатки РЅР° 2020-07-31 +- какие РґРѕРіРѕРІРѕСЂС‹ РЅРµ сведены РЅР° 2020-07-31 +- открой РґРѕРіРѕРІРѕСЂС‹ СЃРѕ сальдо РЅР° 2020-07-31 -## AQ-P0-02 — `list_payables_counterparties` +## AQ-P0-02 — `list_payables_counterparties` - domain: `debt` - recipe: `address.payables.counterparty_totals` - required filters: `as_of_date` - optional filters: `organization, account, limit, sort` -- goal: Определить, кому компания должна на дату. +- goal: Определить, РєРѕРјСѓ компания должна РЅР° дату. -- кому мы должны на 2020-07-31 -- по кому у нас кредиторка на 2020-07-31 -- покажи задолженность перед контрагентами на 2020-07-31 -- какие поставщики ждут оплату на 2020-07-31 -- кому должны денег по состоянию на 2020-07-31 -- у кого перед нами нет оплаты? нет, наоборот: кому должны мы на 2020-07-31 -- выведи кредиторскую задолженность на 2020-07-31 -- кому нужно платить на 2020-07-31 -- какие долги перед поставщиками висят на 2020-07-31 -- контрагенты, которым мы должны на 2020-07-31 -- по кому висит наш долг на 2020-07-31 -- дай список кредиторов на 2020-07-31 -- какая задолженность у нас перед поставщиками на 2020-07-31 -- кому организация должна по взаиморасчетам на 2020-07-31 -- раскрой кредиторку на 2020-07-31 -- покажи кому мы должны денег по базе на 2020-07-31 -- у каких контрагентов у нас минус на 2020-07-31 -- по каким контрагентам надо закрывать долг на 2020-07-31 +- РєРѕРјСѓ РјС‹ должны РЅР° 2020-07-31 +- РїРѕ РєРѕРјСѓ Сѓ нас кредиторка РЅР° 2020-07-31 +- покажи задолженность перед контрагентами РЅР° 2020-07-31 +- какие поставщики Р¶РґСѓС‚ оплату РЅР° 2020-07-31 +- РєРѕРјСѓ должны денег РїРѕ состоянию РЅР° 2020-07-31 +- Сѓ РєРѕРіРѕ перед нами нет оплаты? нет, наоборот: РєРѕРјСѓ должны РјС‹ РЅР° 2020-07-31 +- выведи кредиторскую задолженность РЅР° 2020-07-31 +- РєРѕРјСѓ РЅСѓР¶РЅРѕ платить РЅР° 2020-07-31 +- какие долги перед поставщиками РІРёСЃСЏС‚ РЅР° 2020-07-31 +- контрагенты, которым РјС‹ должны РЅР° 2020-07-31 +- РїРѕ РєРѕРјСѓ РІРёСЃРёС‚ наш долг РЅР° 2020-07-31 +- дай СЃРїРёСЃРѕРє кредиторов РЅР° 2020-07-31 +- какая задолженность Сѓ нас перед поставщиками РЅР° 2020-07-31 +- РєРѕРјСѓ организация должна РїРѕ взаиморасчетам РЅР° 2020-07-31 +- раскрой кредиторку РЅР° 2020-07-31 +- покажи РєРѕРјСѓ РјС‹ должны денег РїРѕ базе РЅР° 2020-07-31 +- Сѓ каких контрагентов Сѓ нас РјРёРЅСѓСЃ РЅР° 2020-07-31 +- РїРѕ каким контрагентам надо закрывать долг РЅР° 2020-07-31 -## AQ-P0-03 — `list_receivables_counterparties` +## AQ-P0-03 — `list_receivables_counterparties` - domain: `debt` - recipe: `address.receivables.counterparty_totals` - required filters: `as_of_date` - optional filters: `organization, account, limit, sort` -- goal: Определить, кто должен компании на дату. +- goal: Определить, кто должен компании РЅР° дату. -- кто должен нам на 2020-07-31 -- по кому у нас дебиторка на 2020-07-31 -- покажи задолженность контрагентов перед нами на 2020-07-31 -- какие покупатели нам должны на 2020-07-31 -- кто не оплатил нам на 2020-07-31 -- выведи дебиторскую задолженность на 2020-07-31 -- кто висит в должниках на 2020-07-31 -- какие долги нам торчат на 2020-07-31 -- контрагенты, которые должны нам на 2020-07-31 -- по кому висит долг нам на 2020-07-31 -- дай список должников на 2020-07-31 -- какая дебиторка у нас на 2020-07-31 -- покажи, кто не закрылся перед нами на 2020-07-31 -- кто должен организации по взаиморасчетам на 2020-07-31 -- раскрой дебиторку на 2020-07-31 -- у каких контрагентов есть долг перед нами на 2020-07-31 -- по каким покупателям есть хвост на 2020-07-31 -- кого нужно дожимать по оплате на 2020-07-31 +- кто должен нам РЅР° 2020-07-31 +- РїРѕ РєРѕРјСѓ Сѓ нас дебиторка РЅР° 2020-07-31 +- покажи задолженность контрагентов перед нами РЅР° 2020-07-31 +- какие покупатели нам должны РЅР° 2020-07-31 +- кто РЅРµ оплатил нам РЅР° 2020-07-31 +- выведи дебиторскую задолженность РЅР° 2020-07-31 +- кто РІРёСЃРёС‚ РІ должниках РЅР° 2020-07-31 +- какие долги нам торчат РЅР° 2020-07-31 +- контрагенты, которые должны нам РЅР° 2020-07-31 +- РїРѕ РєРѕРјСѓ РІРёСЃРёС‚ долг нам РЅР° 2020-07-31 +- дай СЃРїРёСЃРѕРє должников РЅР° 2020-07-31 +- какая дебиторка Сѓ нас РЅР° 2020-07-31 +- покажи, кто РЅРµ закрылся перед нами РЅР° 2020-07-31 +- кто должен организации РїРѕ взаиморасчетам РЅР° 2020-07-31 +- раскрой дебиторку РЅР° 2020-07-31 +- Сѓ каких контрагентов есть долг перед нами РЅР° 2020-07-31 +- РїРѕ каким покупателям есть С…РІРѕСЃС‚ РЅР° 2020-07-31 +- РєРѕРіРѕ РЅСѓР¶РЅРѕ дожимать РїРѕ оплате РЅР° 2020-07-31 -## AQ-P0-04 — `account_balance_snapshot` +## AQ-P0-04 — `account_balance_snapshot` - domain: `accounts` - recipe: `address.account.balance_snapshot` - required filters: `account, as_of_date` - optional filters: `organization, limit, sort` -- goal: Показать остаток по счету на дату. +- goal: Показать остаток РїРѕ счету РЅР° дату. -- какой остаток по счету 62 на 2020-07-31 -- покажи остаток по 62 счету на 2020-07-31 -- что висит на счете 62 на 2020-07-31 -- дай сальдо по счету 62 на 2020-07-31 -- какой хвост на 62 на 2020-07-31 -- какой остаток висит по 62 на 2020-07-31 -- сколько на 62 счете на 2020-07-31 -- сформируй остаток по счету 62 по состоянию на 2020-07-31 -- раскрой остаток по счету 62 на 2020-07-31 -- покажи сальдо по 62 на 2020-07-31 -- что осталось на 62 счете на 2020-07-31 -- по счету 62 какой баланс на 2020-07-31 -- какой остаток по бухсчету 62 на 2020-07-31 -- на 2020-07-31 сколько висит на счете 62 -- остаток по плану счетов 62 на 2020-07-31 -- какое сальдо по 62 по базе на 2020-07-31 -- дай остаток по счету 62 с учетом проводок на 2020-07-31 -- что по остатку счета 62 на 2020-07-31 +- какой остаток РїРѕ счету 62 РЅР° 2020-07-31 +- покажи остаток РїРѕ 62 счету РЅР° 2020-07-31 +- что РІРёСЃРёС‚ РЅР° счете 62 РЅР° 2020-07-31 +- дай сальдо РїРѕ счету 62 РЅР° 2020-07-31 +- какой С…РІРѕСЃС‚ РЅР° 62 РЅР° 2020-07-31 +- какой остаток РІРёСЃРёС‚ РїРѕ 62 РЅР° 2020-07-31 +- сколько РЅР° 62 счете РЅР° 2020-07-31 +- сформируй остаток РїРѕ счету 62 РїРѕ состоянию РЅР° 2020-07-31 +- раскрой остаток РїРѕ счету 62 РЅР° 2020-07-31 +- покажи сальдо РїРѕ 62 РЅР° 2020-07-31 +- что осталось РЅР° 62 счете РЅР° 2020-07-31 +- РїРѕ счету 62 какой баланс РЅР° 2020-07-31 +- какой остаток РїРѕ бухсчету 62 РЅР° 2020-07-31 +- РЅР° 2020-07-31 сколько РІРёСЃРёС‚ РЅР° счете 62 +- остаток РїРѕ плану счетов 62 РЅР° 2020-07-31 +- какое сальдо РїРѕ 62 РїРѕ базе РЅР° 2020-07-31 +- дай остаток РїРѕ счету 62 СЃ учетом РїСЂРѕРІРѕРґРѕРє РЅР° 2020-07-31 +- что РїРѕ остатку счета 62 РЅР° 2020-07-31 -## AQ-P0-05 — `open_items_by_counterparty` +## AQ-P0-05 — `open_items_by_counterparty` - domain: `open_items` - recipe: `address.open_items.by_counterparty` - required filters: `counterparty, as_of_date` - optional filters: `organization, contract, account, limit` -- goal: Показать хвосты / открытые позиции по контрагенту. +- goal: Показать хвосты / открытые позиции РїРѕ контрагенту. -- какие хвосты висят по контрагенту ООО Альфа на 2020-07-31 -- что не закрыто по ООО Альфа на 2020-07-31 -- покажи открытые позиции по контрагенту ООО Альфа на 2020-07-31 -- какие незакрытые взаиморасчеты по ООО Альфа на 2020-07-31 -- какие долги/хвосты по ООО Альфа на 2020-07-31 -- что висит по контрагенту ООО Альфа на 2020-07-31 -- раскрой висяки по ООО Альфа на 2020-07-31 -- покажи незакрытое по ООО Альфа на 2020-07-31 -- какие остатки по взаиморасчетам с ООО Альфа на 2020-07-31 -- есть ли хвосты по ООО Альфа на 2020-07-31 -- по ООО Альфа что осталось открытым на 2020-07-31 -- дай открытые документы/позиции по ООО Альфа на 2020-07-31 -- покажи висящие суммы по ООО Альфа на 2020-07-31 -- что не схлопнулось по контрагенту ООО Альфа на 2020-07-31 -- по поставщику ООО Альфа какие хвосты на 2020-07-31 -- по клиенту ООО Альфа что не закрыто на 2020-07-31 -- взаиморасчеты с ООО Альфа: что висит на 2020-07-31 -- покажи остатки по контрагенту ООО Альфа на 2020-07-31 +- какие хвосты РІРёСЃСЏС‚ РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31 +- что РЅРµ закрыто РїРѕ РћРћРћ Альфа РЅР° 2020-07-31 +- покажи открытые позиции РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31 +- какие незакрытые взаиморасчеты РїРѕ РћРћРћ Альфа РЅР° 2020-07-31 +- какие долги/хвосты РїРѕ РћРћРћ Альфа РЅР° 2020-07-31 +- что РІРёСЃРёС‚ РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31 +- раскрой РІРёСЃСЏРєРё РїРѕ РћРћРћ Альфа РЅР° 2020-07-31 +- покажи незакрытое РїРѕ РћРћРћ Альфа РЅР° 2020-07-31 +- какие остатки РїРѕ взаиморасчетам СЃ РћРћРћ Альфа РЅР° 2020-07-31 +- есть ли хвосты РїРѕ РћРћРћ Альфа РЅР° 2020-07-31 +- РїРѕ РћРћРћ Альфа что осталось открытым РЅР° 2020-07-31 +- дай открытые документы/позиции РїРѕ РћРћРћ Альфа РЅР° 2020-07-31 +- покажи висящие СЃСѓРјРјС‹ РїРѕ РћРћРћ Альфа РЅР° 2020-07-31 +- что РЅРµ схлопнулось РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31 +- РїРѕ поставщику РћРћРћ Альфа какие хвосты РЅР° 2020-07-31 +- РїРѕ клиенту РћРћРћ Альфа что РЅРµ закрыто РЅР° 2020-07-31 +- взаиморасчеты СЃ РћРћРћ Альфа: что РІРёСЃРёС‚ РЅР° 2020-07-31 +- покажи остатки РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31 -## AQ-P0-06 — `open_items_by_contract` +## AQ-P0-06 — `open_items_by_contract` - domain: `open_items` - recipe: `address.open_items.by_contract` - required filters: `contract, as_of_date` - optional filters: `organization, counterparty, account, limit` -- goal: Показать хвосты / открытые позиции по договору. +- goal: Показать хвосты / открытые позиции РїРѕ РґРѕРіРѕРІРѕСЂСѓ. -- какие хвосты висят по договору 15/24 на 2020-07-31 -- что не закрыто по договору 15/24 на 2020-07-31 -- покажи открытые позиции по договору 15/24 на 2020-07-31 -- какие незакрытые взаиморасчеты по договору 15/24 на 2020-07-31 -- что висит по договору 15/24 на 2020-07-31 -- раскрой висяки по договору 15/24 на 2020-07-31 -- покажи незакрытое по договору 15/24 на 2020-07-31 -- какие остатки по договору 15/24 на 2020-07-31 -- есть ли хвосты по договору 15/24 на 2020-07-31 -- по договору 15/24 что осталось открытым на 2020-07-31 -- дай открытые документы/позиции по договору 15/24 на 2020-07-31 -- покажи висящие суммы по договору 15/24 на 2020-07-31 -- что не схлопнулось по договору 15/24 на 2020-07-31 -- по договору 15/24 какие хвосты на 2020-07-31 -- взаиморасчеты по договору 15/24: что висит на 2020-07-31 -- покажи остатки по договору 15/24 на 2020-07-31 -- какие позиции не закрыты по договору 15/24 на 2020-07-31 -- дай хвосты по договору 15/24 по состоянию на 2020-07-31 +- какие хвосты РІРёСЃСЏС‚ РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- что РЅРµ закрыто РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- покажи открытые позиции РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- какие незакрытые взаиморасчеты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- что РІРёСЃРёС‚ РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- раскрой РІРёСЃСЏРєРё РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- покажи незакрытое РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- какие остатки РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- есть ли хвосты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 что осталось открытым РЅР° 2020-07-31 +- дай открытые документы/позиции РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- покажи висящие СЃСѓРјРјС‹ РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- что РЅРµ схлопнулось РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 какие хвосты РЅР° 2020-07-31 +- взаиморасчеты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020: что РІРёСЃРёС‚ РЅР° 2020-07-31 +- покажи остатки РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- какие позиции РЅРµ закрыты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31 +- дай хвосты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РїРѕ состоянию РЅР° 2020-07-31 -## AQ-P0-07 — `list_documents_by_counterparty` +## AQ-P0-07 — `list_documents_by_counterparty` - domain: `documents` - recipe: `address.documents.by_counterparty` - required filters: `counterparty, period_from, period_to` - optional filters: `document_type, organization, limit, sort` -- goal: Показать документы по контрагенту за период. +- goal: Показать документы РїРѕ контрагенту Р·Р° период. -- покажи документы по контрагенту ООО Альфа за период 2020-07-01..2020-07-31 -- дай документы по ООО Альфа за 2020-07-01..2020-07-31 -- какие документы были по контрагенту ООО Альфа за 2020-07-01..2020-07-31 -- выгрузи документы по ООО Альфа за 2020-07-01..2020-07-31 -- покажи движения документов по ООО Альфа за 2020-07-01..2020-07-31 -- что за документы проходили по ООО Альфа за 2020-07-01..2020-07-31 -- дай первичку по ООО Альфа за 2020-07-01..2020-07-31 -- какие документы по поставщику ООО Альфа за 2020-07-01..2020-07-31 -- какие документы по клиенту ООО Альфа за 2020-07-01..2020-07-31 -- найди документы по контре ООО Альфа за 2020-07-01..2020-07-31 -- список документов по ООО Альфа за 2020-07-01..2020-07-31 -- покажи все документы по ООО Альфа за 2020-07-01..2020-07-31 -- по контрагенту ООО Альфа какие документы были в 2020-07-01..2020-07-31 -- по ООО Альфа дай документы за 2020-07-01..2020-07-31 -- какие проведенные документы по ООО Альфа за 2020-07-01..2020-07-31 -- по поставщику ООО Альфа покажи документы за 2020-07-01..2020-07-31 -- по контрагенту ООО Альфа нужна выгрузка документов за 2020-07-01..2020-07-31 -- документальный след по ООО Альфа за 2020-07-01..2020-07-31 +- покажи документы РїРѕ контрагенту РћРћРћ Альфа Р·Р° период 2020-07-01..2020-07-31 +- дай документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- какие документы были РїРѕ контрагенту РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- выгрузи документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- покажи движения документов РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- что Р·Р° документы проходили РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- дай первичку РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- какие документы РїРѕ поставщику РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- какие документы РїРѕ клиенту РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- найди документы РїРѕ контре РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- СЃРїРёСЃРѕРє документов РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- покажи РІСЃРµ документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- РїРѕ контрагенту РћРћРћ Альфа какие документы были РІ 2020-07-01..2020-07-31 +- РїРѕ РћРћРћ Альфа дай документы Р·Р° 2020-07-01..2020-07-31 +- какие проведенные документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- РїРѕ поставщику РћРћРћ Альфа покажи документы Р·Р° 2020-07-01..2020-07-31 +- РїРѕ контрагенту РћРћРћ Альфа РЅСѓР¶РЅР° выгрузка документов Р·Р° 2020-07-01..2020-07-31 +- документальный след РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 -## AQ-P0-07B — `bank_operations_by_counterparty` +## AQ-P0-07B — `bank_operations_by_counterparty` - domain: `bank_ops` - recipe: `address.bank_ops.by_counterparty` - required filters: `counterparty` - optional filters: `period_from, period_to, organization, limit, sort` -- goal: Показать банковские операции по контрагенту. +- goal: Показать банковские операции РїРѕ контрагенту. -- покажи банковские операции по контрагенту ООО Альфа за 2020-07-01..2020-07-31 -- какие платежи были по ООО Альфа за 2020-07-01..2020-07-31 -- были ли оплаты по ООО Альфа за 2020-07-01..2020-07-31 -- дай банк по контрагенту ООО Альфа за 2020-07-01..2020-07-31 -- покажи движения по банку с ООО Альфа за 2020-07-01..2020-07-31 -- какие списания/поступления были по ООО Альфа за 2020-07-01..2020-07-31 -- выгрузи банковские документы по ООО Альфа за 2020-07-01..2020-07-31 -- покажи платежки по ООО Альфа за 2020-07-01..2020-07-31 -- что проходило по расчетному счету с ООО Альфа за 2020-07-01..2020-07-31 -- какие оплаты поставщику ООО Альфа были за 2020-07-01..2020-07-31 -- какие поступления от ООО Альфа были за 2020-07-01..2020-07-31 -- найди банковские операции по контре ООО Альфа за 2020-07-01..2020-07-31 -- список оплат по ООО Альфа за 2020-07-01..2020-07-31 -- покажи банк по ООО Альфа за 2020-07-01..2020-07-31 -- по контрагенту ООО Альфа какие платежи шли в 2020-07-01..2020-07-31 -- по ООО Альфа нужна банковская выборка за 2020-07-01..2020-07-31 -- были ли платежные движения по ООО Альфа за 2020-07-01..2020-07-31 -- все банковские проходы по ООО Альфа за 2020-07-01..2020-07-31 +- покажи банковские операции РїРѕ контрагенту РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- какие платежи были РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- были ли оплаты РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- дай банк РїРѕ контрагенту РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- покажи движения РїРѕ банку СЃ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- какие списания/поступления были РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- выгрузи банковские документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- покажи платежки РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- что проходило РїРѕ расчетному счету СЃ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- какие оплаты поставщику РћРћРћ Альфа были Р·Р° 2020-07-01..2020-07-31 +- какие поступления РѕС‚ РћРћРћ Альфа были Р·Р° 2020-07-01..2020-07-31 +- найди банковские операции РїРѕ контре РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- СЃРїРёСЃРѕРє оплат РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- покажи банк РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- РїРѕ контрагенту РћРћРћ Альфа какие платежи шли РІ 2020-07-01..2020-07-31 +- РїРѕ РћРћРћ Альфа РЅСѓР¶РЅР° банковская выборка Р·Р° 2020-07-01..2020-07-31 +- были ли платежные движения РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 +- РІСЃРµ банковские РїСЂРѕС…РѕРґС‹ РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31 -## AQ-P0-08 — `list_documents_by_contract` +## AQ-P0-08 — `list_documents_by_contract` - domain: `documents` - recipe: `address.documents.by_contract` - required filters: `contract, period_from, period_to` - optional filters: `document_type, organization, limit, sort` -- goal: Показать документы по договору за период. +- goal: Показать документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ Р·Р° период. -- покажи документы по договору 15/24 за период 2020-07-01..2020-07-31 -- дай документы по договору 15/24 за 2020-07-01..2020-07-31 -- какие документы были по договору 15/24 за 2020-07-01..2020-07-31 -- выгрузи документы по договору 15/24 за 2020-07-01..2020-07-31 -- что за документы проходили по договору 15/24 за 2020-07-01..2020-07-31 -- дай первичку по договору 15/24 за 2020-07-01..2020-07-31 -- список документов по договору 15/24 за 2020-07-01..2020-07-31 -- покажи все документы по договору 15/24 за 2020-07-01..2020-07-31 -- по договору 15/24 какие документы были в 2020-07-01..2020-07-31 -- по 15/24 дай документы за 2020-07-01..2020-07-31 -- какие проведенные документы по договору 15/24 за 2020-07-01..2020-07-31 -- по договору 15/24 покажи документы за 2020-07-01..2020-07-31 -- по договору 15/24 нужна выгрузка документов за 2020-07-01..2020-07-31 -- документальный след по договору 15/24 за 2020-07-01..2020-07-31 -- есть ли документы по договору 15/24 за 2020-07-01..2020-07-31 -- покажи движения документов по договору 15/24 за 2020-07-01..2020-07-31 -- что оформляли по договору 15/24 за 2020-07-01..2020-07-31 -- все документы, связанные с договором 15/24, за 2020-07-01..2020-07-31 +- покажи документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° период 2020-07-01..2020-07-31 +- дай документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- какие документы были РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- выгрузи документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- что Р·Р° документы проходили РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- дай первичку РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- СЃРїРёСЃРѕРє документов РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- покажи РІСЃРµ документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 какие документы были РІ 2020-07-01..2020-07-31 +- РїРѕ 1-ПМ/2020 дай документы Р·Р° 2020-07-01..2020-07-31 +- какие проведенные документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 покажи документы Р·Р° 2020-07-01..2020-07-31 +- РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅСѓР¶РЅР° выгрузка документов Р·Р° 2020-07-01..2020-07-31 +- документальный след РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- есть ли документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- покажи движения документов РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- что оформляли РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31 +- РІСЃРµ документы, связанные СЃ РґРѕРіРѕРІРѕСЂРѕРј 1-ПМ/2020, Р·Р° 2020-07-01..2020-07-31 -## AQ-P0-09 — `documents_forming_balance` +## AQ-P0-09 — `documents_forming_balance` - domain: `drilldown` - recipe: `address.balance.drilldown_documents` - required filters: `account, as_of_date` - optional filters: `organization, counterparty, contract, limit` -- goal: Раскрыть, какими документами сформирован остаток по счету. +- goal: Раскрыть, какими документами сформирован остаток РїРѕ счету. -- какие документы формируют остаток по счету 62 на 2020-07-31 -- расшифруй остаток по счету 62 на 2020-07-31 по документам -- из каких документов сложился остаток по 62 на 2020-07-31 -- покажи документы, которые дали остаток по счету 62 на 2020-07-31 -- чем сформирован остаток по 62 на 2020-07-31 -- какие документы висят в остатке по 62 на 2020-07-31 -- раскрой остаток по 62 на 2020-07-31 до документов -- дай документную расшифровку остатка по счету 62 на 2020-07-31 -- по счету 62 какие документы формируют сальдо на 2020-07-31 -- покажи первичку, которая сидит в остатке 62 на 2020-07-31 -- что конкретно образует остаток по 62 на 2020-07-31 -- какие регистраторы формируют остаток счета 62 на 2020-07-31 -- разложи остаток по счету 62 на 2020-07-31 на документы -- по 62 на 2020-07-31 нужен drilldown до документов -- остаток счета 62 на 2020-07-31: из чего он состоит -- какие документы попали в хвост по счету 62 на 2020-07-31 -- раскрой сальдо 62 на 2020-07-31 по документам -- что формирует баланс по счету 62 на 2020-07-31 +- какие документы формируют остаток РїРѕ счету 62 РЅР° 2020-07-31 +- расшифруй остаток РїРѕ счету 62 РЅР° 2020-07-31 РїРѕ документам +- РёР· каких документов сложился остаток РїРѕ 62 РЅР° 2020-07-31 +- покажи документы, которые дали остаток РїРѕ счету 62 РЅР° 2020-07-31 +- чем сформирован остаток РїРѕ 62 РЅР° 2020-07-31 +- какие документы РІРёСЃСЏС‚ РІ остатке РїРѕ 62 РЅР° 2020-07-31 +- раскрой остаток РїРѕ 62 РЅР° 2020-07-31 РґРѕ документов +- дай документную расшифровку остатка РїРѕ счету 62 РЅР° 2020-07-31 +- РїРѕ счету 62 какие документы формируют сальдо РЅР° 2020-07-31 +- покажи первичку, которая СЃРёРґРёС‚ РІ остатке 62 РЅР° 2020-07-31 +- что конкретно образует остаток РїРѕ 62 РЅР° 2020-07-31 +- какие регистраторы формируют остаток счета 62 РЅР° 2020-07-31 +- разложи остаток РїРѕ счету 62 РЅР° 2020-07-31 РЅР° документы +- РїРѕ 62 РЅР° 2020-07-31 нужен drilldown РґРѕ документов +- остаток счета 62 РЅР° 2020-07-31: РёР· чего РѕРЅ состоит +- какие документы попали РІ С…РІРѕСЃС‚ РїРѕ счету 62 РЅР° 2020-07-31 +- раскрой сальдо 62 РЅР° 2020-07-31 РїРѕ документам +- что формирует баланс РїРѕ счету 62 РЅР° 2020-07-31 -## AQ-P1-10 — `account_turnover_snapshot` +## AQ-P1-10 — `account_turnover_snapshot` - domain: `accounts` - recipe: `address.account.turnover_snapshot` - required filters: `account, period_from, period_to` - optional filters: `organization, counterparty, limit` -- goal: Показать обороты по счету за период. +- goal: Показать обороты РїРѕ счету Р·Р° период. -- дай обороты по счету 62 за 2020-07-01..2020-07-31 -- покажи движение по счету 62 за 2020-07-01..2020-07-31 -- какие обороты по 62 были за 2020-07-01..2020-07-31 -- выведи дебет/кредит обороты по счету 62 за 2020-07-01..2020-07-31 -- сформируй оборотку по счету 62 за 2020-07-01..2020-07-31 -- по счету 62 какие обороты в 2020-07-01..2020-07-31 -- дай обороты по бухсчету 62 за 2020-07-01..2020-07-31 -- что прошло по счету 62 за 2020-07-01..2020-07-31 -- обороты по 62 счету за 2020-07-01..2020-07-31 -- покажи обороты счета 62 за 2020-07-01..2020-07-31 -- какое движение по 62 за 2020-07-01..2020-07-31 -- дай сумму оборотов по 62 за 2020-07-01..2020-07-31 -- по 62 раскрой дебетовые и кредитовые обороты за 2020-07-01..2020-07-31 -- какие суммы крутились по счету 62 за 2020-07-01..2020-07-31 -- покажи оборот по плану счетов 62 за 2020-07-01..2020-07-31 -- счет 62: движение за 2020-07-01..2020-07-31 -- что было по дебету/кредиту счета 62 за 2020-07-01..2020-07-31 -- нужны обороты по 62 за 2020-07-01..2020-07-31 +- дай обороты РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31 +- покажи движение РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31 +- какие обороты РїРѕ 62 были Р·Р° 2020-07-01..2020-07-31 +- выведи дебет/кредит обороты РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31 +- сформируй оборотку РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31 +- РїРѕ счету 62 какие обороты РІ 2020-07-01..2020-07-31 +- дай обороты РїРѕ бухсчету 62 Р·Р° 2020-07-01..2020-07-31 +- что прошло РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31 +- обороты РїРѕ 62 счету Р·Р° 2020-07-01..2020-07-31 +- покажи обороты счета 62 Р·Р° 2020-07-01..2020-07-31 +- какое движение РїРѕ 62 Р·Р° 2020-07-01..2020-07-31 +- дай СЃСѓРјРјСѓ оборотов РїРѕ 62 Р·Р° 2020-07-01..2020-07-31 +- РїРѕ 62 раскрой дебетовые Рё кредитовые обороты Р·Р° 2020-07-01..2020-07-31 +- какие СЃСѓРјРјС‹ крутились РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31 +- покажи РѕР±РѕСЂРѕС‚ РїРѕ плану счетов 62 Р·Р° 2020-07-01..2020-07-31 +- счет 62: движение Р·Р° 2020-07-01..2020-07-31 +- что было РїРѕ дебету/кредиту счета 62 Р·Р° 2020-07-01..2020-07-31 +- РЅСѓР¶РЅС‹ обороты РїРѕ 62 Р·Р° 2020-07-01..2020-07-31 -## AQ-P1-11 — `list_documents_by_type` +## AQ-P1-11 — `list_documents_by_type` - domain: `documents` - recipe: `address.documents.by_type` - required filters: `document_type, period_from, period_to` - optional filters: `organization, counterparty, contract, limit` -- goal: Показать документы определенного вида за период. +- goal: Показать документы определенного РІРёРґР° Р·Р° период. -- дай документы типа СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- покажи документы вида СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- какие документы СписаниеСРасчетногоСчета есть за 2020-07-01..2020-07-31 -- выгрузи документы типа СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- список документов СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- покажи все СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- какие проведенные документы типа СписаниеСРасчетногоСчета были за 2020-07-01..2020-07-31 -- документы вида СписаниеСРасчетногоСчета в 2020-07-01..2020-07-31 -- по типу СписаниеСРасчетногоСчета покажи документы за 2020-07-01..2020-07-31 -- что есть по документам типа СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- дай выборку по СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- покажи реестр СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- по виду документа СписаниеСРасчетногоСчета нужна выгрузка за 2020-07-01..2020-07-31 -- какие экземпляры СписаниеСРасчетногоСчета проходили за 2020-07-01..2020-07-31 -- документы 1С типа СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- найди документы СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- выведи журнал по СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31 -- какие документы этого типа были оформлены за 2020-07-01..2020-07-31 +- дай документы типа СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- покажи документы РІРёРґР° СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- какие документы СписаниеСРасчетногоСчета есть Р·Р° 2020-07-01..2020-07-31 +- выгрузи документы типа СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- СЃРїРёСЃРѕРє документов СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- покажи РІСЃРµ СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- какие проведенные документы типа СписаниеСРасчетногоСчета были Р·Р° 2020-07-01..2020-07-31 +- документы РІРёРґР° СписаниеСРасчетногоСчета РІ 2020-07-01..2020-07-31 +- РїРѕ типу СписаниеСРасчетногоСчета покажи документы Р·Р° 2020-07-01..2020-07-31 +- что есть РїРѕ документам типа СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- дай выборку РїРѕ СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- покажи реестр СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- РїРѕ РІРёРґСѓ документа СписаниеСРасчетногоСчета РЅСѓР¶РЅР° выгрузка Р·Р° 2020-07-01..2020-07-31 +- какие экземпляры СписаниеСРасчетногоСчета проходили Р·Р° 2020-07-01..2020-07-31 +- документы 1РЎ типа СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- найди документы СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- выведи журнал РїРѕ СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31 +- какие документы этого типа были оформлены Р·Р° 2020-07-01..2020-07-31 -## AQ-P1-12 — `find_document_by_number_and_date` +## AQ-P1-12 — `find_document_by_number_and_date` - domain: `document_lookup` - recipe: `address.document.lookup_by_number_date` - required filters: `document_number, document_date` - optional filters: `document_type, organization, counterparty` -- goal: Найти конкретный документ по номеру и дате. +- goal: Найти конкретный документ РїРѕ номеру Рё дате. + +- найди документ в„– 000123 РѕС‚ 2020-07-15 +- покажи документ номер 000123 РѕС‚ 2020-07-15 +- есть ли документ 000123 РѕС‚ 2020-07-15 +- отыщи документ в„– 000123 датой 2020-07-15 +- нужен документ 000123 РѕС‚ 2020-07-15 +- РІ базе есть документ 000123 РѕС‚ 2020-07-15 +- РїРѕРґРЅРёРјРё документ номер 000123 РѕС‚ 2020-07-15 +- покажи, что Р·Р° документ 000123 РѕС‚ 2020-07-15 +- дай карточку документа 000123 РѕС‚ 2020-07-15 +- ищу документ 000123 РѕС‚ 2020-07-15 +- найди РїРѕ номеру 000123 Рё дате 2020-07-15 +- проверь наличие документа 000123 РѕС‚ 2020-07-15 +- покажи запись РїРѕ документу 000123 РѕС‚ 2020-07-15 +- РіРґРµ документ 000123 РѕС‚ 2020-07-15 +- какой документ РїСЂРѕС…РѕРґРёС‚ РїРѕРґ номером 000123 РѕС‚ 2020-07-15 +- вытащи документ 000123 РѕС‚ 2020-07-15 +- документ номер 000123, дата 2020-07-15 +- дай документ РїРѕ реквизитам: номер 000123, дата 2020-07-15 -- найди документ № 000123 от 2020-07-15 -- покажи документ номер 000123 от 2020-07-15 -- есть ли документ 000123 от 2020-07-15 -- отыщи документ № 000123 датой 2020-07-15 -- нужен документ 000123 от 2020-07-15 -- в базе есть документ 000123 от 2020-07-15 -- подними документ номер 000123 от 2020-07-15 -- покажи, что за документ 000123 от 2020-07-15 -- дай карточку документа 000123 от 2020-07-15 -- ищу документ 000123 от 2020-07-15 -- найди по номеру 000123 и дате 2020-07-15 -- проверь наличие документа 000123 от 2020-07-15 -- покажи запись по документу 000123 от 2020-07-15 -- где документ 000123 от 2020-07-15 -- какой документ проходит под номером 000123 от 2020-07-15 -- вытащи документ 000123 от 2020-07-15 -- документ номер 000123, дата 2020-07-15 -- дай документ по реквизитам: номер 000123, дата 2020-07-15 diff --git a/docs/ADDRESS/tz/address_query_prod_pack_2026-03-30/address_query_prod_pack_2026-03-30/question_bank_massive_v2.json b/docs/ADDRESS/tz/address_query_prod_pack_2026-03-30/address_query_prod_pack_2026-03-30/question_bank_massive_v2.json index 76c9de3..5ae92ed 100644 --- a/docs/ADDRESS/tz/address_query_prod_pack_2026-03-30/address_query_prod_pack_2026-03-30/question_bank_massive_v2.json +++ b/docs/ADDRESS/tz/address_query_prod_pack_2026-03-30/address_query_prod_pack_2026-03-30/question_bank_massive_v2.json @@ -1,4 +1,4 @@ -{ +{ "generated_at": "2026-03-30", "package": "address_query_prod_pack_v2", "total_intents": 13, @@ -20,24 +20,24 @@ ], "expected_response_type": "FACTUAL_LIST", "questions": [ - "какие договоры не закрыты на 2020-07-31", - "покажи незакрытые договоры на 2020-07-31", - "что из договоров висит открытым на 2020-07-31", - "есть ли открытые договоры на 2020-07-31", - "выгрузи договоры с остатком на 2020-07-31", - "по каким договорам на 2020-07-31 еще нет закрытия", - "дай список незакрытых договоров на 2020-07-31", - "какие договоры остаются открытыми на 2020-07-31", - "какие договоры болтаются незакрытыми на 2020-07-31", - "покажи договоры, по которым есть хвост на 2020-07-31", - "какие договоры в базе не закрыты на 2020-07-31", - "что по открытым договорам на 2020-07-31", - "сформируй перечень открытых договоров на 2020-07-31", - "есть незакрытые договоры по состоянию на 2020-07-31", - "какие договоры не схлопнулись на 2020-07-31", - "по каким договорам висят остатки на 2020-07-31", - "какие договоры не сведены на 2020-07-31", - "открой договоры со сальдо на 2020-07-31" + "какие РґРѕРіРѕРІРѕСЂС‹ РЅРµ закрыты РЅР° 2020-07-31", + "покажи незакрытые РґРѕРіРѕРІРѕСЂС‹ РЅР° 2020-07-31", + "что РёР· РґРѕРіРѕРІРѕСЂРѕРІ РІРёСЃРёС‚ открытым РЅР° 2020-07-31", + "есть ли открытые РґРѕРіРѕРІРѕСЂС‹ РЅР° 2020-07-31", + "выгрузи РґРѕРіРѕРІРѕСЂС‹ СЃ остатком РЅР° 2020-07-31", + "РїРѕ каким договорам РЅР° 2020-07-31 еще нет закрытия", + "дай СЃРїРёСЃРѕРє незакрытых РґРѕРіРѕРІРѕСЂРѕРІ РЅР° 2020-07-31", + "какие РґРѕРіРѕРІРѕСЂС‹ остаются открытыми РЅР° 2020-07-31", + "какие РґРѕРіРѕРІРѕСЂС‹ болтаются незакрытыми РЅР° 2020-07-31", + "покажи РґРѕРіРѕРІРѕСЂС‹, РїРѕ которым есть С…РІРѕСЃС‚ РЅР° 2020-07-31", + "какие РґРѕРіРѕРІРѕСЂС‹ РІ базе РЅРµ закрыты РЅР° 2020-07-31", + "что РїРѕ открытым договорам РЅР° 2020-07-31", + "сформируй перечень открытых РґРѕРіРѕРІРѕСЂРѕРІ РЅР° 2020-07-31", + "есть незакрытые РґРѕРіРѕРІРѕСЂС‹ РїРѕ состоянию РЅР° 2020-07-31", + "какие РґРѕРіРѕРІРѕСЂС‹ РЅРµ схлопнулись РЅР° 2020-07-31", + "РїРѕ каким договорам РІРёСЃСЏС‚ остатки РЅР° 2020-07-31", + "какие РґРѕРіРѕРІРѕСЂС‹ РЅРµ сведены РЅР° 2020-07-31", + "открой РґРѕРіРѕРІРѕСЂС‹ СЃРѕ сальдо РЅР° 2020-07-31" ] }, { @@ -56,24 +56,24 @@ ], "expected_response_type": "FACTUAL_SUMMARY", "questions": [ - "кому мы должны на 2020-07-31", - "по кому у нас кредиторка на 2020-07-31", - "покажи задолженность перед контрагентами на 2020-07-31", - "какие поставщики ждут оплату на 2020-07-31", - "кому должны денег по состоянию на 2020-07-31", - "у кого перед нами нет оплаты? нет, наоборот: кому должны мы на 2020-07-31", - "выведи кредиторскую задолженность на 2020-07-31", - "кому нужно платить на 2020-07-31", - "какие долги перед поставщиками висят на 2020-07-31", - "контрагенты, которым мы должны на 2020-07-31", - "по кому висит наш долг на 2020-07-31", - "дай список кредиторов на 2020-07-31", - "какая задолженность у нас перед поставщиками на 2020-07-31", - "кому организация должна по взаиморасчетам на 2020-07-31", - "раскрой кредиторку на 2020-07-31", - "покажи кому мы должны денег по базе на 2020-07-31", - "у каких контрагентов у нас минус на 2020-07-31", - "по каким контрагентам надо закрывать долг на 2020-07-31" + "РєРѕРјСѓ РјС‹ должны РЅР° 2020-07-31", + "РїРѕ РєРѕРјСѓ Сѓ нас кредиторка РЅР° 2020-07-31", + "покажи задолженность перед контрагентами РЅР° 2020-07-31", + "какие поставщики Р¶РґСѓС‚ оплату РЅР° 2020-07-31", + "РєРѕРјСѓ должны денег РїРѕ состоянию РЅР° 2020-07-31", + "Сѓ РєРѕРіРѕ перед нами нет оплаты? нет, наоборот: РєРѕРјСѓ должны РјС‹ РЅР° 2020-07-31", + "выведи кредиторскую задолженность РЅР° 2020-07-31", + "РєРѕРјСѓ РЅСѓР¶РЅРѕ платить РЅР° 2020-07-31", + "какие долги перед поставщиками РІРёСЃСЏС‚ РЅР° 2020-07-31", + "контрагенты, которым РјС‹ должны РЅР° 2020-07-31", + "РїРѕ РєРѕРјСѓ РІРёСЃРёС‚ наш долг РЅР° 2020-07-31", + "дай СЃРїРёСЃРѕРє кредиторов РЅР° 2020-07-31", + "какая задолженность Сѓ нас перед поставщиками РЅР° 2020-07-31", + "РєРѕРјСѓ организация должна РїРѕ взаиморасчетам РЅР° 2020-07-31", + "раскрой кредиторку РЅР° 2020-07-31", + "покажи РєРѕРјСѓ РјС‹ должны денег РїРѕ базе РЅР° 2020-07-31", + "Сѓ каких контрагентов Сѓ нас РјРёРЅСѓСЃ РЅР° 2020-07-31", + "РїРѕ каким контрагентам надо закрывать долг РЅР° 2020-07-31" ] }, { @@ -92,24 +92,24 @@ ], "expected_response_type": "FACTUAL_SUMMARY", "questions": [ - "кто должен нам на 2020-07-31", - "по кому у нас дебиторка на 2020-07-31", - "покажи задолженность контрагентов перед нами на 2020-07-31", - "какие покупатели нам должны на 2020-07-31", - "кто не оплатил нам на 2020-07-31", - "выведи дебиторскую задолженность на 2020-07-31", - "кто висит в должниках на 2020-07-31", - "какие долги нам торчат на 2020-07-31", - "контрагенты, которые должны нам на 2020-07-31", - "по кому висит долг нам на 2020-07-31", - "дай список должников на 2020-07-31", - "какая дебиторка у нас на 2020-07-31", - "покажи, кто не закрылся перед нами на 2020-07-31", - "кто должен организации по взаиморасчетам на 2020-07-31", - "раскрой дебиторку на 2020-07-31", - "у каких контрагентов есть долг перед нами на 2020-07-31", - "по каким покупателям есть хвост на 2020-07-31", - "кого нужно дожимать по оплате на 2020-07-31" + "кто должен нам РЅР° 2020-07-31", + "РїРѕ РєРѕРјСѓ Сѓ нас дебиторка РЅР° 2020-07-31", + "покажи задолженность контрагентов перед нами РЅР° 2020-07-31", + "какие покупатели нам должны РЅР° 2020-07-31", + "кто РЅРµ оплатил нам РЅР° 2020-07-31", + "выведи дебиторскую задолженность РЅР° 2020-07-31", + "кто РІРёСЃРёС‚ РІ должниках РЅР° 2020-07-31", + "какие долги нам торчат РЅР° 2020-07-31", + "контрагенты, которые должны нам РЅР° 2020-07-31", + "РїРѕ РєРѕРјСѓ РІРёСЃРёС‚ долг нам РЅР° 2020-07-31", + "дай СЃРїРёСЃРѕРє должников РЅР° 2020-07-31", + "какая дебиторка Сѓ нас РЅР° 2020-07-31", + "покажи, кто РЅРµ закрылся перед нами РЅР° 2020-07-31", + "кто должен организации РїРѕ взаиморасчетам РЅР° 2020-07-31", + "раскрой дебиторку РЅР° 2020-07-31", + "Сѓ каких контрагентов есть долг перед нами РЅР° 2020-07-31", + "РїРѕ каким покупателям есть С…РІРѕСЃС‚ РЅР° 2020-07-31", + "РєРѕРіРѕ РЅСѓР¶РЅРѕ дожимать РїРѕ оплате РЅР° 2020-07-31" ] }, { @@ -128,24 +128,24 @@ ], "expected_response_type": "FACTUAL_SUMMARY", "questions": [ - "какой остаток по счету 62 на 2020-07-31", - "покажи остаток по 62 счету на 2020-07-31", - "что висит на счете 62 на 2020-07-31", - "дай сальдо по счету 62 на 2020-07-31", - "какой хвост на 62 на 2020-07-31", - "какой остаток висит по 62 на 2020-07-31", - "сколько на 62 счете на 2020-07-31", - "сформируй остаток по счету 62 по состоянию на 2020-07-31", - "раскрой остаток по счету 62 на 2020-07-31", - "покажи сальдо по 62 на 2020-07-31", - "что осталось на 62 счете на 2020-07-31", - "по счету 62 какой баланс на 2020-07-31", - "какой остаток по бухсчету 62 на 2020-07-31", - "на 2020-07-31 сколько висит на счете 62", - "остаток по плану счетов 62 на 2020-07-31", - "какое сальдо по 62 по базе на 2020-07-31", - "дай остаток по счету 62 с учетом проводок на 2020-07-31", - "что по остатку счета 62 на 2020-07-31" + "какой остаток РїРѕ счету 62 РЅР° 2020-07-31", + "покажи остаток РїРѕ 62 счету РЅР° 2020-07-31", + "что РІРёСЃРёС‚ РЅР° счете 62 РЅР° 2020-07-31", + "дай сальдо РїРѕ счету 62 РЅР° 2020-07-31", + "какой С…РІРѕСЃС‚ РЅР° 62 РЅР° 2020-07-31", + "какой остаток РІРёСЃРёС‚ РїРѕ 62 РЅР° 2020-07-31", + "сколько РЅР° 62 счете РЅР° 2020-07-31", + "сформируй остаток РїРѕ счету 62 РїРѕ состоянию РЅР° 2020-07-31", + "раскрой остаток РїРѕ счету 62 РЅР° 2020-07-31", + "покажи сальдо РїРѕ 62 РЅР° 2020-07-31", + "что осталось РЅР° 62 счете РЅР° 2020-07-31", + "РїРѕ счету 62 какой баланс РЅР° 2020-07-31", + "какой остаток РїРѕ бухсчету 62 РЅР° 2020-07-31", + "РЅР° 2020-07-31 сколько РІРёСЃРёС‚ РЅР° счете 62", + "остаток РїРѕ плану счетов 62 РЅР° 2020-07-31", + "какое сальдо РїРѕ 62 РїРѕ базе РЅР° 2020-07-31", + "дай остаток РїРѕ счету 62 СЃ учетом РїСЂРѕРІРѕРґРѕРє РЅР° 2020-07-31", + "что РїРѕ остатку счета 62 РЅР° 2020-07-31" ] }, { @@ -165,24 +165,24 @@ ], "expected_response_type": "FACTUAL_LIST", "questions": [ - "какие хвосты висят по контрагенту ООО Альфа на 2020-07-31", - "что не закрыто по ООО Альфа на 2020-07-31", - "покажи открытые позиции по контрагенту ООО Альфа на 2020-07-31", - "какие незакрытые взаиморасчеты по ООО Альфа на 2020-07-31", - "какие долги/хвосты по ООО Альфа на 2020-07-31", - "что висит по контрагенту ООО Альфа на 2020-07-31", - "раскрой висяки по ООО Альфа на 2020-07-31", - "покажи незакрытое по ООО Альфа на 2020-07-31", - "какие остатки по взаиморасчетам с ООО Альфа на 2020-07-31", - "есть ли хвосты по ООО Альфа на 2020-07-31", - "по ООО Альфа что осталось открытым на 2020-07-31", - "дай открытые документы/позиции по ООО Альфа на 2020-07-31", - "покажи висящие суммы по ООО Альфа на 2020-07-31", - "что не схлопнулось по контрагенту ООО Альфа на 2020-07-31", - "по поставщику ООО Альфа какие хвосты на 2020-07-31", - "по клиенту ООО Альфа что не закрыто на 2020-07-31", - "взаиморасчеты с ООО Альфа: что висит на 2020-07-31", - "покажи остатки по контрагенту ООО Альфа на 2020-07-31" + "какие хвосты РІРёСЃСЏС‚ РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31", + "что РЅРµ закрыто РїРѕ РћРћРћ Альфа РЅР° 2020-07-31", + "покажи открытые позиции РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31", + "какие незакрытые взаиморасчеты РїРѕ РћРћРћ Альфа РЅР° 2020-07-31", + "какие долги/хвосты РїРѕ РћРћРћ Альфа РЅР° 2020-07-31", + "что РІРёСЃРёС‚ РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31", + "раскрой РІРёСЃСЏРєРё РїРѕ РћРћРћ Альфа РЅР° 2020-07-31", + "покажи незакрытое РїРѕ РћРћРћ Альфа РЅР° 2020-07-31", + "какие остатки РїРѕ взаиморасчетам СЃ РћРћРћ Альфа РЅР° 2020-07-31", + "есть ли хвосты РїРѕ РћРћРћ Альфа РЅР° 2020-07-31", + "РїРѕ РћРћРћ Альфа что осталось открытым РЅР° 2020-07-31", + "дай открытые документы/позиции РїРѕ РћРћРћ Альфа РЅР° 2020-07-31", + "покажи висящие СЃСѓРјРјС‹ РїРѕ РћРћРћ Альфа РЅР° 2020-07-31", + "что РЅРµ схлопнулось РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31", + "РїРѕ поставщику РћРћРћ Альфа какие хвосты РЅР° 2020-07-31", + "РїРѕ клиенту РћРћРћ Альфа что РЅРµ закрыто РЅР° 2020-07-31", + "взаиморасчеты СЃ РћРћРћ Альфа: что РІРёСЃРёС‚ РЅР° 2020-07-31", + "покажи остатки РїРѕ контрагенту РћРћРћ Альфа РЅР° 2020-07-31" ] }, { @@ -202,24 +202,24 @@ ], "expected_response_type": "FACTUAL_LIST", "questions": [ - "какие хвосты висят по договору 15/24 на 2020-07-31", - "что не закрыто по договору 15/24 на 2020-07-31", - "покажи открытые позиции по договору 15/24 на 2020-07-31", - "какие незакрытые взаиморасчеты по договору 15/24 на 2020-07-31", - "что висит по договору 15/24 на 2020-07-31", - "раскрой висяки по договору 15/24 на 2020-07-31", - "покажи незакрытое по договору 15/24 на 2020-07-31", - "какие остатки по договору 15/24 на 2020-07-31", - "есть ли хвосты по договору 15/24 на 2020-07-31", - "по договору 15/24 что осталось открытым на 2020-07-31", - "дай открытые документы/позиции по договору 15/24 на 2020-07-31", - "покажи висящие суммы по договору 15/24 на 2020-07-31", - "что не схлопнулось по договору 15/24 на 2020-07-31", - "по договору 15/24 какие хвосты на 2020-07-31", - "взаиморасчеты по договору 15/24: что висит на 2020-07-31", - "покажи остатки по договору 15/24 на 2020-07-31", - "какие позиции не закрыты по договору 15/24 на 2020-07-31", - "дай хвосты по договору 15/24 по состоянию на 2020-07-31" + "какие хвосты РІРёСЃСЏС‚ РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "что РЅРµ закрыто РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "покажи открытые позиции РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "какие незакрытые взаиморасчеты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "что РІРёСЃРёС‚ РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "раскрой РІРёСЃСЏРєРё РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "покажи незакрытое РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "какие остатки РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "есть ли хвосты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 что осталось открытым РЅР° 2020-07-31", + "дай открытые документы/позиции РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "покажи висящие СЃСѓРјРјС‹ РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "что РЅРµ схлопнулось РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 какие хвосты РЅР° 2020-07-31", + "взаиморасчеты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020: что РІРёСЃРёС‚ РЅР° 2020-07-31", + "покажи остатки РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "какие позиции РЅРµ закрыты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅР° 2020-07-31", + "дай хвосты РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РїРѕ состоянию РЅР° 2020-07-31" ] }, { @@ -240,24 +240,24 @@ ], "expected_response_type": "FACTUAL_LIST", "questions": [ - "покажи документы по контрагенту ООО Альфа за период 2020-07-01..2020-07-31", - "дай документы по ООО Альфа за 2020-07-01..2020-07-31", - "какие документы были по контрагенту ООО Альфа за 2020-07-01..2020-07-31", - "выгрузи документы по ООО Альфа за 2020-07-01..2020-07-31", - "покажи движения документов по ООО Альфа за 2020-07-01..2020-07-31", - "что за документы проходили по ООО Альфа за 2020-07-01..2020-07-31", - "дай первичку по ООО Альфа за 2020-07-01..2020-07-31", - "какие документы по поставщику ООО Альфа за 2020-07-01..2020-07-31", - "какие документы по клиенту ООО Альфа за 2020-07-01..2020-07-31", - "найди документы по контре ООО Альфа за 2020-07-01..2020-07-31", - "список документов по ООО Альфа за 2020-07-01..2020-07-31", - "покажи все документы по ООО Альфа за 2020-07-01..2020-07-31", - "по контрагенту ООО Альфа какие документы были в 2020-07-01..2020-07-31", - "по ООО Альфа дай документы за 2020-07-01..2020-07-31", - "какие проведенные документы по ООО Альфа за 2020-07-01..2020-07-31", - "по поставщику ООО Альфа покажи документы за 2020-07-01..2020-07-31", - "по контрагенту ООО Альфа нужна выгрузка документов за 2020-07-01..2020-07-31", - "документальный след по ООО Альфа за 2020-07-01..2020-07-31" + "покажи документы РїРѕ контрагенту РћРћРћ Альфа Р·Р° период 2020-07-01..2020-07-31", + "дай документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "какие документы были РїРѕ контрагенту РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "выгрузи документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "покажи движения документов РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "что Р·Р° документы проходили РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "дай первичку РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "какие документы РїРѕ поставщику РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "какие документы РїРѕ клиенту РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "найди документы РїРѕ контре РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "СЃРїРёСЃРѕРє документов РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "покажи РІСЃРµ документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "РїРѕ контрагенту РћРћРћ Альфа какие документы были РІ 2020-07-01..2020-07-31", + "РїРѕ РћРћРћ Альфа дай документы Р·Р° 2020-07-01..2020-07-31", + "какие проведенные документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "РїРѕ поставщику РћРћРћ Альфа покажи документы Р·Р° 2020-07-01..2020-07-31", + "РїРѕ контрагенту РћРћРћ Альфа РЅСѓР¶РЅР° выгрузка документов Р·Р° 2020-07-01..2020-07-31", + "документальный след РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31" ] }, { @@ -277,24 +277,24 @@ ], "expected_response_type": "FACTUAL_LIST", "questions": [ - "покажи банковские операции по контрагенту ООО Альфа за 2020-07-01..2020-07-31", - "какие платежи были по ООО Альфа за 2020-07-01..2020-07-31", - "были ли оплаты по ООО Альфа за 2020-07-01..2020-07-31", - "дай банк по контрагенту ООО Альфа за 2020-07-01..2020-07-31", - "покажи движения по банку с ООО Альфа за 2020-07-01..2020-07-31", - "какие списания/поступления были по ООО Альфа за 2020-07-01..2020-07-31", - "выгрузи банковские документы по ООО Альфа за 2020-07-01..2020-07-31", - "покажи платежки по ООО Альфа за 2020-07-01..2020-07-31", - "что проходило по расчетному счету с ООО Альфа за 2020-07-01..2020-07-31", - "какие оплаты поставщику ООО Альфа были за 2020-07-01..2020-07-31", - "какие поступления от ООО Альфа были за 2020-07-01..2020-07-31", - "найди банковские операции по контре ООО Альфа за 2020-07-01..2020-07-31", - "список оплат по ООО Альфа за 2020-07-01..2020-07-31", - "покажи банк по ООО Альфа за 2020-07-01..2020-07-31", - "по контрагенту ООО Альфа какие платежи шли в 2020-07-01..2020-07-31", - "по ООО Альфа нужна банковская выборка за 2020-07-01..2020-07-31", - "были ли платежные движения по ООО Альфа за 2020-07-01..2020-07-31", - "все банковские проходы по ООО Альфа за 2020-07-01..2020-07-31" + "покажи банковские операции РїРѕ контрагенту РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "какие платежи были РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "были ли оплаты РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "дай банк РїРѕ контрагенту РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "покажи движения РїРѕ банку СЃ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "какие списания/поступления были РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "выгрузи банковские документы РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "покажи платежки РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "что проходило РїРѕ расчетному счету СЃ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "какие оплаты поставщику РћРћРћ Альфа были Р·Р° 2020-07-01..2020-07-31", + "какие поступления РѕС‚ РћРћРћ Альфа были Р·Р° 2020-07-01..2020-07-31", + "найди банковские операции РїРѕ контре РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "СЃРїРёСЃРѕРє оплат РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "покажи банк РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "РїРѕ контрагенту РћРћРћ Альфа какие платежи шли РІ 2020-07-01..2020-07-31", + "РїРѕ РћРћРћ Альфа РЅСѓР¶РЅР° банковская выборка Р·Р° 2020-07-01..2020-07-31", + "были ли платежные движения РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31", + "РІСЃРµ банковские РїСЂРѕС…РѕРґС‹ РїРѕ РћРћРћ Альфа Р·Р° 2020-07-01..2020-07-31" ] }, { @@ -315,24 +315,24 @@ ], "expected_response_type": "FACTUAL_LIST", "questions": [ - "покажи документы по договору 15/24 за период 2020-07-01..2020-07-31", - "дай документы по договору 15/24 за 2020-07-01..2020-07-31", - "какие документы были по договору 15/24 за 2020-07-01..2020-07-31", - "выгрузи документы по договору 15/24 за 2020-07-01..2020-07-31", - "что за документы проходили по договору 15/24 за 2020-07-01..2020-07-31", - "дай первичку по договору 15/24 за 2020-07-01..2020-07-31", - "список документов по договору 15/24 за 2020-07-01..2020-07-31", - "покажи все документы по договору 15/24 за 2020-07-01..2020-07-31", - "по договору 15/24 какие документы были в 2020-07-01..2020-07-31", - "по 15/24 дай документы за 2020-07-01..2020-07-31", - "какие проведенные документы по договору 15/24 за 2020-07-01..2020-07-31", - "по договору 15/24 покажи документы за 2020-07-01..2020-07-31", - "по договору 15/24 нужна выгрузка документов за 2020-07-01..2020-07-31", - "документальный след по договору 15/24 за 2020-07-01..2020-07-31", - "есть ли документы по договору 15/24 за 2020-07-01..2020-07-31", - "покажи движения документов по договору 15/24 за 2020-07-01..2020-07-31", - "что оформляли по договору 15/24 за 2020-07-01..2020-07-31", - "все документы, связанные с договором 15/24, за 2020-07-01..2020-07-31" + "покажи документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° период 2020-07-01..2020-07-31", + "дай документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "какие документы были РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "выгрузи документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "что Р·Р° документы проходили РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "дай первичку РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "СЃРїРёСЃРѕРє документов РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "покажи РІСЃРµ документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 какие документы были РІ 2020-07-01..2020-07-31", + "РїРѕ 1-ПМ/2020 дай документы Р·Р° 2020-07-01..2020-07-31", + "какие проведенные документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 покажи документы Р·Р° 2020-07-01..2020-07-31", + "РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 РЅСѓР¶РЅР° выгрузка документов Р·Р° 2020-07-01..2020-07-31", + "документальный след РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "есть ли документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "покажи движения документов РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "что оформляли РїРѕ РґРѕРіРѕРІРѕСЂСѓ 1-ПМ/2020 Р·Р° 2020-07-01..2020-07-31", + "РІСЃРµ документы, связанные СЃ РґРѕРіРѕРІРѕСЂРѕРј 1-ПМ/2020, Р·Р° 2020-07-01..2020-07-31" ] }, { @@ -352,24 +352,24 @@ ], "expected_response_type": "FACTUAL_LIST", "questions": [ - "какие документы формируют остаток по счету 62 на 2020-07-31", - "расшифруй остаток по счету 62 на 2020-07-31 по документам", - "из каких документов сложился остаток по 62 на 2020-07-31", - "покажи документы, которые дали остаток по счету 62 на 2020-07-31", - "чем сформирован остаток по 62 на 2020-07-31", - "какие документы висят в остатке по 62 на 2020-07-31", - "раскрой остаток по 62 на 2020-07-31 до документов", - "дай документную расшифровку остатка по счету 62 на 2020-07-31", - "по счету 62 какие документы формируют сальдо на 2020-07-31", - "покажи первичку, которая сидит в остатке 62 на 2020-07-31", - "что конкретно образует остаток по 62 на 2020-07-31", - "какие регистраторы формируют остаток счета 62 на 2020-07-31", - "разложи остаток по счету 62 на 2020-07-31 на документы", - "по 62 на 2020-07-31 нужен drilldown до документов", - "остаток счета 62 на 2020-07-31: из чего он состоит", - "какие документы попали в хвост по счету 62 на 2020-07-31", - "раскрой сальдо 62 на 2020-07-31 по документам", - "что формирует баланс по счету 62 на 2020-07-31" + "какие документы формируют остаток РїРѕ счету 62 РЅР° 2020-07-31", + "расшифруй остаток РїРѕ счету 62 РЅР° 2020-07-31 РїРѕ документам", + "РёР· каких документов сложился остаток РїРѕ 62 РЅР° 2020-07-31", + "покажи документы, которые дали остаток РїРѕ счету 62 РЅР° 2020-07-31", + "чем сформирован остаток РїРѕ 62 РЅР° 2020-07-31", + "какие документы РІРёСЃСЏС‚ РІ остатке РїРѕ 62 РЅР° 2020-07-31", + "раскрой остаток РїРѕ 62 РЅР° 2020-07-31 РґРѕ документов", + "дай документную расшифровку остатка РїРѕ счету 62 РЅР° 2020-07-31", + "РїРѕ счету 62 какие документы формируют сальдо РЅР° 2020-07-31", + "покажи первичку, которая СЃРёРґРёС‚ РІ остатке 62 РЅР° 2020-07-31", + "что конкретно образует остаток РїРѕ 62 РЅР° 2020-07-31", + "какие регистраторы формируют остаток счета 62 РЅР° 2020-07-31", + "разложи остаток РїРѕ счету 62 РЅР° 2020-07-31 РЅР° документы", + "РїРѕ 62 РЅР° 2020-07-31 нужен drilldown РґРѕ документов", + "остаток счета 62 РЅР° 2020-07-31: РёР· чего РѕРЅ состоит", + "какие документы попали РІ С…РІРѕСЃС‚ РїРѕ счету 62 РЅР° 2020-07-31", + "раскрой сальдо 62 РЅР° 2020-07-31 РїРѕ документам", + "что формирует баланс РїРѕ счету 62 РЅР° 2020-07-31" ] }, { @@ -389,24 +389,24 @@ ], "expected_response_type": "FACTUAL_SUMMARY", "questions": [ - "дай обороты по счету 62 за 2020-07-01..2020-07-31", - "покажи движение по счету 62 за 2020-07-01..2020-07-31", - "какие обороты по 62 были за 2020-07-01..2020-07-31", - "выведи дебет/кредит обороты по счету 62 за 2020-07-01..2020-07-31", - "сформируй оборотку по счету 62 за 2020-07-01..2020-07-31", - "по счету 62 какие обороты в 2020-07-01..2020-07-31", - "дай обороты по бухсчету 62 за 2020-07-01..2020-07-31", - "что прошло по счету 62 за 2020-07-01..2020-07-31", - "обороты по 62 счету за 2020-07-01..2020-07-31", - "покажи обороты счета 62 за 2020-07-01..2020-07-31", - "какое движение по 62 за 2020-07-01..2020-07-31", - "дай сумму оборотов по 62 за 2020-07-01..2020-07-31", - "по 62 раскрой дебетовые и кредитовые обороты за 2020-07-01..2020-07-31", - "какие суммы крутились по счету 62 за 2020-07-01..2020-07-31", - "покажи оборот по плану счетов 62 за 2020-07-01..2020-07-31", - "счет 62: движение за 2020-07-01..2020-07-31", - "что было по дебету/кредиту счета 62 за 2020-07-01..2020-07-31", - "нужны обороты по 62 за 2020-07-01..2020-07-31" + "дай обороты РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31", + "покажи движение РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31", + "какие обороты РїРѕ 62 были Р·Р° 2020-07-01..2020-07-31", + "выведи дебет/кредит обороты РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31", + "сформируй оборотку РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31", + "РїРѕ счету 62 какие обороты РІ 2020-07-01..2020-07-31", + "дай обороты РїРѕ бухсчету 62 Р·Р° 2020-07-01..2020-07-31", + "что прошло РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31", + "обороты РїРѕ 62 счету Р·Р° 2020-07-01..2020-07-31", + "покажи обороты счета 62 Р·Р° 2020-07-01..2020-07-31", + "какое движение РїРѕ 62 Р·Р° 2020-07-01..2020-07-31", + "дай СЃСѓРјРјСѓ оборотов РїРѕ 62 Р·Р° 2020-07-01..2020-07-31", + "РїРѕ 62 раскрой дебетовые Рё кредитовые обороты Р·Р° 2020-07-01..2020-07-31", + "какие СЃСѓРјРјС‹ крутились РїРѕ счету 62 Р·Р° 2020-07-01..2020-07-31", + "покажи РѕР±РѕСЂРѕС‚ РїРѕ плану счетов 62 Р·Р° 2020-07-01..2020-07-31", + "счет 62: движение Р·Р° 2020-07-01..2020-07-31", + "что было РїРѕ дебету/кредиту счета 62 Р·Р° 2020-07-01..2020-07-31", + "РЅСѓР¶РЅС‹ обороты РїРѕ 62 Р·Р° 2020-07-01..2020-07-31" ] }, { @@ -427,24 +427,24 @@ ], "expected_response_type": "FACTUAL_LIST", "questions": [ - "дай документы типа СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "покажи документы вида СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "какие документы СписаниеСРасчетногоСчета есть за 2020-07-01..2020-07-31", - "выгрузи документы типа СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "список документов СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "покажи все СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "какие проведенные документы типа СписаниеСРасчетногоСчета были за 2020-07-01..2020-07-31", - "документы вида СписаниеСРасчетногоСчета в 2020-07-01..2020-07-31", - "по типу СписаниеСРасчетногоСчета покажи документы за 2020-07-01..2020-07-31", - "что есть по документам типа СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "дай выборку по СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "покажи реестр СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "по виду документа СписаниеСРасчетногоСчета нужна выгрузка за 2020-07-01..2020-07-31", - "какие экземпляры СписаниеСРасчетногоСчета проходили за 2020-07-01..2020-07-31", - "документы 1С типа СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "найди документы СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "выведи журнал по СписаниеСРасчетногоСчета за 2020-07-01..2020-07-31", - "какие документы этого типа были оформлены за 2020-07-01..2020-07-31" + "дай документы типа СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "покажи документы РІРёРґР° СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "какие документы СписаниеСРасчетногоСчета есть Р·Р° 2020-07-01..2020-07-31", + "выгрузи документы типа СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "СЃРїРёСЃРѕРє документов СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "покажи РІСЃРµ СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "какие проведенные документы типа СписаниеСРасчетногоСчета были Р·Р° 2020-07-01..2020-07-31", + "документы РІРёРґР° СписаниеСРасчетногоСчета РІ 2020-07-01..2020-07-31", + "РїРѕ типу СписаниеСРасчетногоСчета покажи документы Р·Р° 2020-07-01..2020-07-31", + "что есть РїРѕ документам типа СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "дай выборку РїРѕ СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "покажи реестр СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "РїРѕ РІРёРґСѓ документа СписаниеСРасчетногоСчета РЅСѓР¶РЅР° выгрузка Р·Р° 2020-07-01..2020-07-31", + "какие экземпляры СписаниеСРасчетногоСчета проходили Р·Р° 2020-07-01..2020-07-31", + "документы 1РЎ типа СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "найди документы СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "выведи журнал РїРѕ СписаниеСРасчетногоСчета Р·Р° 2020-07-01..2020-07-31", + "какие документы этого типа были оформлены Р·Р° 2020-07-01..2020-07-31" ] }, { @@ -463,25 +463,25 @@ ], "expected_response_type": "FACTUAL_LIST", "questions": [ - "найди документ № 000123 от 2020-07-15", - "покажи документ номер 000123 от 2020-07-15", - "есть ли документ 000123 от 2020-07-15", - "отыщи документ № 000123 датой 2020-07-15", - "нужен документ 000123 от 2020-07-15", - "в базе есть документ 000123 от 2020-07-15", - "подними документ номер 000123 от 2020-07-15", - "покажи, что за документ 000123 от 2020-07-15", - "дай карточку документа 000123 от 2020-07-15", - "ищу документ 000123 от 2020-07-15", - "найди по номеру 000123 и дате 2020-07-15", - "проверь наличие документа 000123 от 2020-07-15", - "покажи запись по документу 000123 от 2020-07-15", - "где документ 000123 от 2020-07-15", - "какой документ проходит под номером 000123 от 2020-07-15", - "вытащи документ 000123 от 2020-07-15", - "документ номер 000123, дата 2020-07-15", - "дай документ по реквизитам: номер 000123, дата 2020-07-15" + "найди документ в„– 000123 РѕС‚ 2020-07-15", + "покажи документ номер 000123 РѕС‚ 2020-07-15", + "есть ли документ 000123 РѕС‚ 2020-07-15", + "отыщи документ в„– 000123 датой 2020-07-15", + "нужен документ 000123 РѕС‚ 2020-07-15", + "РІ базе есть документ 000123 РѕС‚ 2020-07-15", + "РїРѕРґРЅРёРјРё документ номер 000123 РѕС‚ 2020-07-15", + "покажи, что Р·Р° документ 000123 РѕС‚ 2020-07-15", + "дай карточку документа 000123 РѕС‚ 2020-07-15", + "ищу документ 000123 РѕС‚ 2020-07-15", + "найди РїРѕ номеру 000123 Рё дате 2020-07-15", + "проверь наличие документа 000123 РѕС‚ 2020-07-15", + "покажи запись РїРѕ документу 000123 РѕС‚ 2020-07-15", + "РіРґРµ документ 000123 РѕС‚ 2020-07-15", + "какой документ РїСЂРѕС…РѕРґРёС‚ РїРѕРґ номером 000123 РѕС‚ 2020-07-15", + "вытащи документ 000123 РѕС‚ 2020-07-15", + "документ номер 000123, дата 2020-07-15", + "дай документ РїРѕ реквизитам: номер 000123, дата 2020-07-15" ] } ] -} \ No newline at end of file +} diff --git a/llm_normalizer/backend/dist/services/addressFilterExtractor.js b/llm_normalizer/backend/dist/services/addressFilterExtractor.js index 821677a..a34945d 100644 --- a/llm_normalizer/backend/dist/services/addressFilterExtractor.js +++ b/llm_normalizer/backend/dist/services/addressFilterExtractor.js @@ -1,6 +1,10 @@ "use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractAddressFilters = extractAddressFilters; +const iconv_lite_1 = __importDefault(require("iconv-lite")); const ACCOUNT_PATTERN = /(?:сч[её]т|счет|account)[^0-9]{0,12}(\d{2}(?:[.,]\d{1,2})?)/i; const LIMIT_PATTERN = /(?:\btop\b|\blimit\b|\bпервые\b|\bтоп\b)\s*(\d{1,3})/i; const COUNTERPARTY_PATTERN = /(?:по\s+контрагенту|контрагент(?:у|а)?|по\s+контре|контра|по\s+компан(?:ии|ию|ия)|компан(?:ия|ии|ию)|по\s+организац(?:ии|ию|ия)|организац(?:ия|ии|ию)|по\s+поставщик(?:у|а)?|поставщик(?:у|а)?|по\s+клиент(?:у|а)?|клиент(?:у|а)?|по\s+покупател(?:ю|я)|покупател(?:ю|я)|по\s+партнер(?:у|а)?|партнер(?:у|а)?|by\s+counterparty|counterparty|by\s+company|company|by\s+supplier|supplier|by\s+vendor|vendor|by\s+customer|customer|by\s+client|client|by\s+partner|partner)\s+([^\r\n,.;:]+)/iu; @@ -11,13 +15,62 @@ const PERIOD_RANGE_PATTERN_1 = /(?:from|с)\s+(\d{1,4}[.\/-]\d{1,2}[.\/-]\d{1,4} const PERIOD_RANGE_PATTERN_2 = /(?:between|за\s+период\s+с)\s+(\d{1,4}[.\/-]\d{1,2}[.\/-]\d{1,4})\s+(?:and|по)\s+(\d{1,4}[.\/-]\d{1,2}[.\/-]\d{1,4})/i; const YEAR_RANGE_PATTERN = /(?:за|for|с|from)?\s*(20\d{2})\s*(?:[-‐‑‒–—―−]|до|to|по)\s*(20\d{2})(?:\s*(?:г(?:од|ода)?\.?|year))?(?=[^\d]|$)/iu; const YEAR_RANGE_LOOSE_PATTERN = /\b(20\d{2})\b\s*(?:[-‐‑‒–—―−]|до|to|по)\s*\b(20\d{2})\b/iu; -const YEAR_PERIOD_PATTERN = /(?:за|for)\s*(20\d{2})(?!\s*(?:[-‐‑‒–—―−]|до|to|по)\s*20\d{2})\s*(?:г(?:од|ода)?\.?|year)?/iu; -const YEAR_PERIOD_SHORT_PATTERN = /(?:^|[\s,.;:!?()\-])(\d{2})\s*(?:г(?:од|ода)?\.?|year)(?=$|[\s,.;:!?()\-])/iu; +const YEAR_PERIOD_PATTERN = /(?:за|for)\s*(20\d{2})(?!\s*(?:[-‐‑‒–—―−]|до|to|по)\s*20\d{2})\s*(?:г(?:од|ода)?\.?|year|god)?/iu; +const YEAR_PERIOD_SHORT_PATTERN = /(?:^|[\s,.;:!?()\-])(\d{2})\s*(?:г(?:од|ода)?\.?|year|god)(?=$|[\s,.;:!?()\-])/iu; +const YEAR_PERIOD_SHORT_ORDINAL_PATTERN = /(?:^|[\s,.;:!?()\-])(?:за|for|на|in)?\s*(\d{2})\s*(?:[-\s]?(?:й|ый|ой|th))(?:\s*(?:г(?:од|ода)?\.?|year|period|период))?(?=$|[\s,.;:!?()\-])/iu; const YEAR_PERIOD_ANY_PATTERN = /(?:^|[\s,.;:!?()\-])((?:19|20)\d{2})(?!\s*(?:[-‐‑‒–—―−]|до|to|по)\s*(?:19|20)\d{2})(?![.\/-]\d)(?:\s*(?:г(?:од|ода)?\.?|year))?(?=$|[\s,.;:!?()\-])/iu; const MONTH_PERIOD_NUMERIC_MONTH_YEAR_PATTERN = /(?:^|[\s,.;:!?()\-])(?:за|for|на|in)?\s*(0?[1-9]|1[0-2])[.\/-](20\d{2})(?=$|[\s,.;:!?()\-])/iu; const MONTH_PERIOD_NUMERIC_YEAR_MONTH_PATTERN = /(?:^|[\s,.;:!?()\-])(?:за|for|на|in)?\s*(20\d{2})[.\/-](0?[1-9]|1[0-2])(?=$|[\s,.;:!?()\-])/iu; const MONTH_PERIOD_NAME_PATTERN = /(?:^|[\s,.;:!?()\-])(?:за|for|на|in)?\s*([a-zа-яё]+)\s+(20\d{2})(?:\s*г(?:од|ода|\\.)?)?(?=$|[\s,.;:!?()\-])/iu; const MONTH_PERIOD_NAME_YEAR_FIRST_PATTERN = /(?:^|[\s,.;:!?()\-])(?:за|for|на|in)?\s*(20\d{2})(?:\s*г(?:од|ода|\\.)?)?\s+([a-zа-яё]+)(?=$|[\s,.;:!?()\-])/iu; +const DOC_SIGNAL_PATTERN = "(?:док(?:и|умент|ументы|ументов|умам|ума)|docs?|documents?|doki|dokument(?:y|ov|am|a)?)"; +function textMojibakeScore(value) { + const source = String(value ?? ""); + const cyrillic = (source.match(/[А-Яа-яЁё]/g) ?? []).length; + const latin = (source.match(/[A-Za-z]/g) ?? []).length; + const hardMarkers = (source.match(/[Ѓѓ‚„…†‡€‰‹ЉЊЌЋЏ‘’“”•–—™љ›њќћџ]/g) ?? []).length; + const pairMarkers = (source.match(/(?:Р.|С.|Ð.|Ñ.)/g) ?? []).length; + return cyrillic + latin - hardMarkers * 3 - pairMarkers * 2; +} +function looksLikeMojibake(value) { + const source = String(value ?? ""); + if (!source.trim()) { + return false; + } + if (/[Ѓѓ‚„…†‡€‰‹ЉЊЌЋЏ‘’“”•–—™љ›њќћџ]/.test(source)) { + return true; + } + return (source.match(/(?:Р.|С.|Ð.|Ñ.)/g) ?? []).length >= 2; +} +function decodeUtf8FromWin1251Mojibake(value) { + if (!looksLikeMojibake(value)) { + return value; + } + try { + const bytes = iconv_lite_1.default.encode(value, "win1251"); + const decoded = bytes.toString("utf8"); + return textMojibakeScore(decoded) > textMojibakeScore(value) ? decoded : value; + } + catch { + return value; + } +} +function decodeUtf8FromLatin1Mojibake(value) { + if (!looksLikeMojibake(value)) { + return value; + } + try { + const decoded = Buffer.from(value, "latin1").toString("utf8"); + return textMojibakeScore(decoded) > textMojibakeScore(value) ? decoded : value; + } + catch { + return value; + } +} +function normalizeMojibakeString(value) { + const fromWin1251 = decodeUtf8FromWin1251Mojibake(value); + return decodeUtf8FromLatin1Mojibake(fromWin1251); +} function toIsoDate(year, month, day) { if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day)) { return null; @@ -187,18 +240,28 @@ function extractYearPeriod(text) { } } const shortYearMatch = text.match(YEAR_PERIOD_SHORT_PATTERN); - if (!shortYearMatch) { - return {}; + if (shortYearMatch) { + const shortYear = Number(shortYearMatch[1]); + if (Number.isFinite(shortYear) && shortYear >= 0 && shortYear <= 99) { + const year = 2000 + shortYear; + return { + period_from: `${year}-01-01`, + period_to: `${year}-12-31` + }; + } } - const shortYear = Number(shortYearMatch[1]); - if (!Number.isFinite(shortYear) || shortYear < 0 || shortYear > 99) { - return {}; + const shortOrdinalMatch = text.match(YEAR_PERIOD_SHORT_ORDINAL_PATTERN); + if (shortOrdinalMatch) { + const shortYear = Number(shortOrdinalMatch[1]); + if (Number.isFinite(shortYear) && shortYear >= 0 && shortYear <= 99) { + const year = 2000 + shortYear; + return { + period_from: `${year}-01-01`, + period_to: `${year}-12-31` + }; + } } - const year = 2000 + shortYear; - return { - period_from: `${year}-01-01`, - period_to: `${year}-12-31` - }; + return {}; } function extractYearRangePeriod(text) { const match = text.match(YEAR_RANGE_PATTERN) ?? text.match(YEAR_RANGE_LOOSE_PATTERN); @@ -347,13 +410,32 @@ function isLikelyCounterpartyToken(rawToken) { "нахуй", "покеж", "покажи", - "выведи" + "показать", + "выведи", + "show", + "list", + "please", + "vse", + "all", + "kakie", + "kakoi", + "est", + "pokaji", + "pokazhi", + "pokazh", + "pokezh", + "doki", + "doky", + "dokument", + "dokumenty", + "documents", + "docs" ]); return !stopWords.has(lowered); } function hasDocsOrBankSignal(text) { const lowered = String(text ?? "").toLowerCase(); - return /(?:док(?:и|умент|ументы|ументов)|docs?|documents?|банк|выписк|платеж|платёж|оплат|transactions?|bank\s+ops|bank\s+operations?)/iu.test(lowered); + return new RegExp(`(?:${DOC_SIGNAL_PATTERN}|банк|выписк|платеж|платёж|оплат|transactions?|bank\\s+ops|bank\\s+operations?|payment|payments?|platezh|oplata)`, "iu").test(lowered); } function extractCounterpartyFromFreeTextHeuristic(text) { if (!hasDocsOrBankSignal(text)) { @@ -413,14 +495,16 @@ function extractCounterpartyFromFreeTextHeuristic(text) { } function extractImplicitCounterpartyValue(text) { const input = String(text ?? ""); - const beforeDocsMatch = input.match(/(?:^|\s)([a-zа-яё][a-zа-яё0-9._-]{1,})\s+(?:док(?:и|ум(?:ент(?:ы|ов|ам|а)?)?)|docs?|documents?)(?=[\s,.;:!?)]|$)/iu); + const beforeDocsPattern = new RegExp(`(?:^|\\s)([a-zа-яё][a-zа-яё0-9._-]{1,})\\s+${DOC_SIGNAL_PATTERN}(?=[\\s,.;:!?)]|$)`, "iu"); + const beforeDocsMatch = input.match(beforeDocsPattern); if (beforeDocsMatch) { const candidate = String(beforeDocsMatch[1] ?? "").trim(); if (isLikelyCounterpartyToken(candidate)) { return candidate; } } - const afterDocsMatch = input.match(/(?:док(?:и|ум(?:ент(?:ы|ов|ам|а)?)?)|docs?|documents?)\s+(?:по\s+)?([a-zа-яё][a-zа-яё0-9._-]{1,})(?=[\s,.;:!?)]|$)/iu); + const afterDocsPattern = new RegExp(`${DOC_SIGNAL_PATTERN}\\s+(?:по\\s+)?([a-zа-яё][a-zа-яё0-9._-]{1,})(?=[\\s,.;:!?)]|$)`, "iu"); + const afterDocsMatch = input.match(afterDocsPattern); if (afterDocsMatch) { const candidate = String(afterDocsMatch[1] ?? "").trim(); if (isLikelyCounterpartyToken(candidate)) { @@ -444,7 +528,8 @@ function requiredFiltersByIntent(intent) { return []; } function extractAddressFilters(userMessage, intent) { - const text = String(userMessage ?? "").trim(); + const rawText = String(userMessage ?? "").trim(); + const text = normalizeMojibakeString(rawText); const filters = { sort: "period_desc", limit: 20 diff --git a/llm_normalizer/backend/dist/services/addressQueryClassifier.js b/llm_normalizer/backend/dist/services/addressQueryClassifier.js index 15baeca..4f09a95 100644 --- a/llm_normalizer/backend/dist/services/addressQueryClassifier.js +++ b/llm_normalizer/backend/dist/services/addressQueryClassifier.js @@ -12,12 +12,17 @@ const ADDRESS_ACTION_TOKENS = [ "debt", "owe", "покажи", + "покаж", + "показ", "список", "найди", + "найд", "выведи", + "вывед", "кто", "кому", "какие", + "что по", "остаток", "долг", "задолж", @@ -70,6 +75,10 @@ const ADDRESS_ENTITY_TOKENS = [ "кредитор", "аванс", "оплат", + "поступлен", + "поступлени", + "списан", + "списани", "долг", "должен", "должны", @@ -138,6 +147,79 @@ function hasAddressFollowupSignal(text) { } return false; } +function hasDocsOrBankSignal(text) { + return /(?:док(?:и|умент|ументы|ументов)|docs?|documents?|банк|выписк|платеж|платёж|оплат|поступлен|списан|transactions?|bank\s+ops|bank\s+operations?)/iu.test(text); +} +function hasLikelyCounterpartyToken(text) { + const stopWords = new Set([ + "за", + "с", + "по", + "на", + "и", + "или", + "док", + "доки", + "документ", + "документы", + "документов", + "банк", + "банковские", + "операции", + "платежи", + "платеж", + "платёж", + "контрагент", + "контрагенту", + "контрагента", + "компания", + "компании", + "организация", + "организации", + "год", + "года", + "г", + "плс", + "pls", + "пж", + "пжлст", + "пожалуйста", + "бля", + "блять", + "епт", + "ёпт", + "епта", + "нах", + "нахуй", + "покеж", + "покажи", + "показать", + "покаж", + "выведи", + "show", + "list", + "please", + "all", + "vse" + ]); + const tokens = String(text ?? "") + .split(/[^a-zа-яё0-9._-]+/iu) + .map((token) => token.trim()) + .filter((token) => token.length >= 2); + return tokens.some((token) => { + const lowered = token.toLowerCase(); + if (stopWords.has(lowered)) { + return false; + } + if (/^\d+$/.test(lowered)) { + return false; + } + if (/^(?:19|20)\d{2}$/.test(lowered)) { + return false; + } + return true; + }); +} function hasAnyToken(text, tokens) { return tokens.some((token) => text.includes(token)); } @@ -176,6 +258,13 @@ function detectAddressQuestionMode(userMessage) { reasons: ["address_entity_detected"] }; } + if (!hasDeepReasoning && hasDocsOrBankSignal(text) && (hasLooseByAnchor || hasLikelyCounterpartyToken(text))) { + return { + mode: "address_query", + confidence: "medium", + reasons: ["docs_or_bank_signal_detected", "anchor_like_token_detected"] + }; + } if (hasDeepReasoning) { return { mode: "deep_analysis", diff --git a/llm_normalizer/backend/dist/services/address_runtime/decomposeStage.js b/llm_normalizer/backend/dist/services/address_runtime/decomposeStage.js index 034323f..8d3cc05 100644 --- a/llm_normalizer/backend/dist/services/address_runtime/decomposeStage.js +++ b/llm_normalizer/backend/dist/services/address_runtime/decomposeStage.js @@ -18,7 +18,11 @@ function toNonEmptyString(value) { return normalized.length > 0 ? normalized : null; } function hasAllTimeHint(text) { - return /(?:за\s+вс[её]\s+время|за\s+весь\s+период|за\s+всю\s+истори(?:ю|и)|за\s+любой\s+период|for\s+all\s+time|all\s+time|for\s+entire\s+period|entire\s+period|for\s+any\s+period|any\s+period|for\s+full\s+history|full\s+history)/iu.test(String(text ?? "")); + const normalized = String(text ?? ""); + return /(?:за\s+вс[её]\s+время|за\s+весь\s+период|за\s+весь\s+срок|за\s+всю\s+истори(?:ю|и)|за\s+любой\s+период|за\s+любой\s+срок|for\s+all\s+time|all\s+time|for\s+entire\s+period|entire\s+period|for\s+any\s+period|any\s+period|for\s+full\s+history|full\s+history)/iu.test(normalized); +} +function hasSameDateHint(text) { + return /(?:на\s+ту\s+же\s+дат[ауеы]|на\s+эту\s+же\s+дат[ауеы]|та\s+же\s+дата|same\s+date|as\s+of\s+same\s+date|the\s+same\s+date)/iu.test(String(text ?? "")); } function hasAddressFollowupContextSignal(text) { const normalized = String(text ?? "").trim(); @@ -28,10 +32,18 @@ function hasAddressFollowupContextSignal(text) { if (hasAllTimeHint(normalized)) { return true; } - if (/(?:^|\s)(?:и|а\s+еще|а\s+ещё|еще|ещё|также|по\s+этому|по\s+тому|это\s+же|в\s+этом|тот\s+же|also|same|that)/iu.test(normalized)) { + if (/(?:^|\s)(?:и|а\s+еще|а\s+ещё|еще|ещё|также|а\s+теперь|теперь|по\s+этому|по\s+тому|это\s+же|в\s+этом|тот\s+же|also|same|that|then|now)/iu.test(normalized)) { return true; } - return normalized.split(/\s+/).filter(Boolean).length <= 8; + if (hasSameDateHint(normalized)) { + return true; + } + const tokenCount = normalized.split(/\s+/).filter(Boolean).length; + const hasPeriodLiteral = /\b(?:19|20)\d{2}(?:[./-](?:0?[1-9]|1[0-2]))?\b/.test(normalized); + if (tokenCount <= 8 && hasPeriodLiteral) { + return true; + } + return tokenCount <= 6; } function mergeFollowupFilters(current, intent, userMessage, followupContext) { const merged = { ...current }; @@ -44,7 +56,11 @@ function mergeFollowupFilters(current, intent, userMessage, followupContext) { const previousCounterparty = toNonEmptyString(previous.counterparty); const previousContract = toNonEmptyString(previous.contract); const previousAccount = toNonEmptyString(previous.account); + const previousAsOfDate = toNonEmptyString(previous.as_of_date); + const previousPeriodFrom = toNonEmptyString(previous.period_from); + const previousPeriodTo = toNonEmptyString(previous.period_to); const allTimeRequested = hasAllTimeHint(userMessage); + const sameDateRequested = hasSameDateHint(userMessage); if (intent === "list_documents_by_counterparty" || intent === "bank_operations_by_counterparty") { if (!toNonEmptyString(merged.counterparty)) { const inheritedCounterparty = previousCounterparty ?? @@ -57,18 +73,23 @@ function mergeFollowupFilters(current, intent, userMessage, followupContext) { } if (intent === "account_balance_snapshot" || intent === "documents_forming_balance") { if (!toNonEmptyString(merged.account)) { - const inheritedAccount = previousAccount ?? - (followupContext.previous_anchor_type === "account" ? previousAnchorValue : null); + const inheritedAccount = previousAccount ?? (followupContext.previous_anchor_type === "account" ? previousAnchorValue : null); if (inheritedAccount) { merged.account = inheritedAccount; reasons.push("account_from_followup_context"); } } + if (sameDateRequested) { + const inheritedAsOfDate = previousAsOfDate ?? previousPeriodTo ?? previousPeriodFrom; + if (inheritedAsOfDate && merged.as_of_date !== inheritedAsOfDate) { + merged.as_of_date = inheritedAsOfDate; + reasons.push("as_of_date_from_followup_context"); + } + } } if (intent === "open_items_by_counterparty_or_contract" || intent === "list_open_contracts") { if (!toNonEmptyString(merged.contract)) { - const inheritedContract = previousContract ?? - (followupContext.previous_anchor_type === "contract" ? previousAnchorValue : null); + const inheritedContract = previousContract ?? (followupContext.previous_anchor_type === "contract" ? previousAnchorValue : null); if (inheritedContract) { merged.contract = inheritedContract; reasons.push("contract_from_followup_context"); @@ -94,11 +115,11 @@ function mergeFollowupFilters(current, intent, userMessage, followupContext) { const currentHasPeriod = hasExplicitPeriodWindow(merged); const previousHasPeriod = hasExplicitPeriodWindow(previous); if (!currentHasPeriod && previousHasPeriod && hasAddressFollowupContextSignal(userMessage)) { - if (toNonEmptyString(previous.period_from)) { - merged.period_from = previous.period_from; + if (previousPeriodFrom) { + merged.period_from = previousPeriodFrom; } - if (toNonEmptyString(previous.period_to)) { - merged.period_to = previous.period_to; + if (previousPeriodTo) { + merged.period_to = previousPeriodTo; } reasons.push("period_from_followup_context"); } diff --git a/llm_normalizer/backend/dist/services/assistantService.js b/llm_normalizer/backend/dist/services/assistantService.js index 6136180..1ddc5c1 100644 --- a/llm_normalizer/backend/dist/services/assistantService.js +++ b/llm_normalizer/backend/dist/services/assistantService.js @@ -32,6 +32,9 @@ var __importStar = (this && this.__importStar) || (function () { return result; }; })(); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.AssistantService = void 0; exports.evaluateCoverageForTests = evaluateCoverageForTests; @@ -51,6 +54,7 @@ const companyAnchorResolver_1 = __importStar(require("./companyAnchorResolver")) const assistantRuntimeGuards_1 = __importStar(require("./assistantRuntimeGuards")); const assistantClaimBoundEvidence_1 = __importStar(require("./assistantClaimBoundEvidence")); const addressQueryService_1 = __importStar(require("./addressQueryService")); +const iconv_lite_1 = __importDefault(require("iconv-lite")); function retrievalSummaryForRoute(route) { if (route === "store_canonical") return "Canonical accounting data path selected."; @@ -1424,7 +1428,7 @@ function hasAccountingSignal(text) { } function hasFollowupMarker(text) { const compact = compactWhitespace(text.toLowerCase()); - return /^(и|а еще|а ещё|еще|ещё|добав|уточн|продолж|также|а если|plus|also|dobav|utochn|prodolzh)/i.test(compact); + return /^(и|а еще|а ещё|еще|ещё|добав|уточн|продолж|также|а если|а теперь|теперь|plus|also|dobav|utochn|prodolzh|then|now)/i.test(compact); } function hasReferentialPointer(text) { return /(по этому|по тому|это же|этой|этим|этому|из этого|в этом|тот же|same thing|that one|po etomu|po tomu)/i.test(text.toLowerCase()); @@ -1818,6 +1822,153 @@ function toNonEmptyString(value) { const text = String(value).trim(); return text.length > 0 ? text : null; } +const ADDRESS_PREDECOMPOSE_NOISE_TOKENS = new Set([ + "за", + "с", + "по", + "на", + "и", + "или", + "док", + "доки", + "docs", + "documents", + "doki", + "dokument", + "dokumenty", + "документ", + "документы", + "документов", + "банк", + "банковские", + "операции", + "платеж", + "платёж", + "платежи", + "контрагент", + "контрагенту", + "контрагента", + "год", + "года", + "г", + "year", + "god", + "плс", + "pls", + "пж", + "пжлст", + "пожалуйста", + "please", + "покеж", + "покажи", + "показать", + "show", + "list", + "выведи", + "которые", + "какие", + "какой", + "есть", + "est", + "kakie", + "kakoi", + "vse", + "all", + "blya", + "blyat", + "епт", + "ёпт", + "бля" +]); +function textMojibakeScoreForAddress(value) { + const source = String(value ?? ""); + const cyrillic = (source.match(/[А-Яа-яЁё]/g) ?? []).length; + const latin = (source.match(/[A-Za-z]/g) ?? []).length; + const hardMarkers = (source.match(/[Ѓѓ‚„…†‡€‰‹ЉЊЌЋЏ‘’“”•–—™љ›њќћџ]/g) ?? []).length; + const pairMarkers = (source.match(/(?:Р.|С.|Ð.|Ñ.)/g) ?? []).length; + return cyrillic + latin - hardMarkers * 3 - pairMarkers * 2; +} +function looksLikeMojibakeForAddress(value) { + const source = String(value ?? ""); + if (!source.trim()) { + return false; + } + if (/[Ѓѓ‚„…†‡€‰‹ЉЊЌЋЏ‘’“”•–—™љ›њќћџ]/.test(source)) { + return true; + } + return (source.match(/(?:Р.|С.|Ð.|Ñ.)/g) ?? []).length >= 2; +} +function repairAddressMojibake(value) { + const source = String(value ?? ""); + if (!looksLikeMojibakeForAddress(source)) { + return source; + } + let candidate = source; + try { + const fromWin1251 = iconv_lite_1.default.encode(candidate, "win1251").toString("utf8"); + if (textMojibakeScoreForAddress(fromWin1251) > textMojibakeScoreForAddress(candidate)) { + candidate = fromWin1251; + } + } + catch (_error) { } + try { + const fromLatin1 = Buffer.from(candidate, "latin1").toString("utf8"); + if (textMojibakeScoreForAddress(fromLatin1) > textMojibakeScoreForAddress(candidate)) { + candidate = fromLatin1; + } + } + catch (_error) { } + return candidate; +} +function extractAddressAnchorTokens(value) { + const source = repairAddressMojibake(compactWhitespace(String(value ?? "").toLowerCase())); + if (!source) { + return []; + } + const tokens = source + .split(/[^a-zа-яё0-9._-]+/iu) + .map((item) => item.trim()) + .filter((item) => item.length >= 2); + const filtered = []; + for (const token of tokens) { + if (/^\d+$/.test(token)) { + continue; + } + if (/^(?:19|20)\d{2}$/.test(token)) { + continue; + } + if (/^(?:0?[1-9]|1[0-2])[./-](?:19|20)\d{2}$/.test(token) || /^(?:19|20)\d{2}[./-](?:0?[1-9]|1[0-2])$/.test(token)) { + continue; + } + if (/^(?:янв|фев|мар|апр|май|июн|июл|авг|сен|сент|окт|ноя|дек|january|february|march|april|may|june|july|august|september|october|november|december)/i.test(token)) { + continue; + } + if (ADDRESS_PREDECOMPOSE_NOISE_TOKENS.has(token)) { + continue; + } + filtered.push(token); + } + return Array.from(new Set(filtered)); +} +function selectPreferredAddressFragmentCandidate(rawText, normalizedText) { + const normalizedCandidate = compactWhitespace(repairAddressMojibake(normalizedText ?? "")); + const rawCandidate = compactWhitespace(repairAddressMojibake(rawText ?? "")); + if (!normalizedCandidate && !rawCandidate) { + return null; + } + if (!normalizedCandidate) { + return rawCandidate; + } + if (!rawCandidate) { + return normalizedCandidate; + } + const normalizedAnchors = extractAddressAnchorTokens(normalizedCandidate); + const rawAnchors = extractAddressAnchorTokens(rawCandidate); + if (rawAnchors.length > 0 && normalizedAnchors.length === 0) { + return rawCandidate; + } + return normalizedCandidate; +} function readAddressFilterString(addressDebug, key) { const filters = addressDebug?.extracted_filters; if (!filters || typeof filters !== "object") { @@ -1839,7 +1990,8 @@ function findLastAddressAssistantDebug(items) { return null; } function hasAddressFollowupContextSignal(userMessage) { - const text = compactWhitespace(String(userMessage ?? "").toLowerCase()); + const repaired = repairAddressMojibake(String(userMessage ?? "")); + const text = compactWhitespace(repaired.toLowerCase()); if (!text) { return false; } @@ -1849,10 +2001,16 @@ function hasAddressFollowupContextSignal(userMessage) { if (hasReferentialPointer(text)) { return true; } + if (/(?:на\s+ту\s+же\s+дат[ауеы]|на\s+эту\s+же\s+дат[ауеы]|same\s+date|the\s+same\s+date|as\s+of\s+same\s+date)/iu.test(text)) { + return true; + } const shortFollowup = countTokens(text) <= 8; if (shortFollowup && hasFollowupMarker(text)) { return true; } + if (shortFollowup && hasPeriodLiteral(text)) { + return true; + } return false; } function resolveAddressFollowupCarryoverContext(userMessage, items) { @@ -1889,11 +2047,12 @@ function resolveAddressFollowupCarryoverContext(userMessage, items) { }; } function isAddressLlmPreDecomposeCandidate(userMessage) { - const text = compactWhitespace(String(userMessage ?? "").toLowerCase()); + const repaired = repairAddressMojibake(String(userMessage ?? "")); + const text = compactWhitespace(repaired.toLowerCase()); if (!text) { return false; } - return /(?:\bдок\b|доки|документ|контрагент|договор|остаток|сч(?:е|ё)т|банк|выписк|платеж|оплат|поступлен|реализац|сверк|взаиморасч|кто\s+должен|show|list|documents?|counterparty|contract|account|balance|bank\s+operations?)/i.test(text); + return /(?:\bдок\b|доки|документ|контрагент|договор|остаток|сч(?:е|ё)т|сальдо|банк|выписк|платеж|оплат|поступлен|поступлени|списан|реализац|сверк|взаиморасч|кто\s+должен|show|list|documents?|counterparty|contract|account|balance|bank\s+operations?|doki|dokument(?:y|ov|am|a)?|platezh|oplata|schet|saldo)/i.test(text); } function extractAddressQuestionFromNormalized(normalized) { if (!normalized || typeof normalized !== "object") { @@ -1911,13 +2070,16 @@ function extractAddressQuestionFromNormalized(normalized) { continue; } const readiness = String(fragment.execution_readiness ?? "").trim().toLowerCase(); - if (readiness === "no_route") { - continue; - } const normalizedText = toNonEmptyString(fragment.normalized_fragment_text); const rawText = toNonEmptyString(fragment.raw_fragment_text); - const candidate = compactWhitespace(normalizedText ?? rawText ?? ""); + const candidate = selectPreferredAddressFragmentCandidate(rawText ?? "", normalizedText ?? ""); + if (!candidate) { + continue; + } if (candidate.length >= 3 && candidate.length <= 500) { + if (readiness === "no_route" && !isAddressLlmPreDecomposeCandidate(candidate)) { + continue; + } return candidate; } } @@ -2024,13 +2186,16 @@ function extractAddressQuestionFromRawNormalizerOutput(rawModelOutput) { continue; } const readiness = String(fragment.execution_readiness ?? "").trim().toLowerCase(); - if (readiness === "no_route") { - continue; - } const normalizedText = toNonEmptyString(fragment.normalized_fragment_text); const rawText = toNonEmptyString(fragment.raw_fragment_text); - const candidate = compactWhitespace(normalizedText ?? rawText ?? ""); + const candidate = selectPreferredAddressFragmentCandidate(rawText ?? "", normalizedText ?? ""); + if (!candidate) { + continue; + } if (candidate.length >= 3 && candidate.length <= 500) { + if (readiness === "no_route" && !isAddressLlmPreDecomposeCandidate(candidate)) { + continue; + } return candidate; } } @@ -2241,12 +2406,21 @@ class AssistantService { reason: "disabled_by_feature_flag" }; const addressInputMessage = toNonEmptyString(addressPreDecompose?.effectiveMessage) ?? userMessage; + const carryover = resolveAddressFollowupCarryoverContext(userMessage, session.items); + const shouldPreferContextualLane = Boolean(carryover?.followupContext); + if (shouldPreferContextualLane) { + const contextualAddressLane = await this.addressQueryService.tryHandle(addressInputMessage, { + followupContext: carryover.followupContext + }); + if (contextualAddressLane?.handled) { + return finalizeAddressLaneResponse(contextualAddressLane, addressInputMessage, carryover, addressPreDecompose); + } + } const primaryAddressLane = await this.addressQueryService.tryHandle(addressInputMessage); if (primaryAddressLane?.handled) { return finalizeAddressLaneResponse(primaryAddressLane, addressInputMessage, null, addressPreDecompose); } - const carryover = resolveAddressFollowupCarryoverContext(userMessage, session.items); - if (carryover?.followupContext) { + if (!shouldPreferContextualLane && carryover?.followupContext) { const contextualAddressLane = await this.addressQueryService.tryHandle(addressInputMessage, { followupContext: carryover.followupContext }); diff --git a/llm_normalizer/backend/dist/services/normalizerService.js b/llm_normalizer/backend/dist/services/normalizerService.js index bf7c07d..61b3d44 100644 --- a/llm_normalizer/backend/dist/services/normalizerService.js +++ b/llm_normalizer/backend/dist/services/normalizerService.js @@ -11,6 +11,24 @@ const RETRY_INSTRUCTION_V1 = "IMPORTANT: return valid JSON strictly matching sch const RETRY_INSTRUCTION_V2 = "IMPORTANT: return valid JSON strictly matching schema normalized_query_v2. No markdown."; const RETRY_INSTRUCTION_V2_0_1 = "IMPORTANT: return valid JSON strictly matching schema normalized_query_v2_0_1. No markdown."; const RETRY_INSTRUCTION_V2_0_2 = "IMPORTANT: return valid JSON strictly matching schema normalized_query_v2_0_2. No markdown."; +const CONFIDENCE_LEVELS = ["high", "medium", "low"]; +const DOMAIN_RELEVANCE_VALUES = ["in_scope", "out_of_scope", "unclear"]; +const BUSINESS_SCOPE_VALUES = [ + "company_specific_accounting", + "generic_accounting", + "offtopic", + "unclear" +]; +const CANDIDATE_LABEL_VALUES = [ + "heavy_analytical", + "cross_entity", + "drilldown_explain", + "rule_based_account_control", + "anomaly_probe", + "period_close_risk", + "ambiguous_human_query", + "simple_factual" +]; function safeJsonParse(text) { const cleaned = text.trim().replace(/^```json\s*/i, "").replace(/^```\s*/i, "").replace(/```$/i, "").trim(); return JSON.parse(cleaned); @@ -58,6 +76,374 @@ function computeRetryMaxOutputTokens(current, rawModelResponse) { const escalated = Math.max(current + 400, Math.ceil(current * 1.6)); return Math.min(escalated, 2400); } +function normalizeToken(value) { + return String(value ?? "") + .trim() + .toLowerCase() + .replace(/[\s-]+/g, "_"); +} +function toOptionalString(value) { + if (typeof value !== "string") { + return null; + } + const trimmed = value.trim(); + return trimmed.length > 0 ? trimmed : null; +} +function coerceBoolean(value, fallback = false) { + if (typeof value === "boolean") { + return value; + } + if (typeof value === "number") { + if (value === 1) + return true; + if (value === 0) + return false; + return fallback; + } + if (typeof value === "string") { + const token = value.trim().toLowerCase(); + if (["true", "1", "yes", "y", "да", "ok"].includes(token)) { + return true; + } + if (["false", "0", "no", "n", "нет"].includes(token)) { + return false; + } + } + return fallback; +} +function coerceStringArray(value) { + if (Array.isArray(value)) { + return Array.from(new Set(value + .map((item) => (typeof item === "string" ? item.trim() : "")) + .filter((item) => item.length > 0))); + } + if (typeof value === "string") { + return Array.from(new Set(value + .split(/[,\n;]+/) + .map((item) => item.trim()) + .filter((item) => item.length > 0))); + } + return []; +} +function coerceConfidence(value, fallback) { + if (typeof value === "string") { + const token = normalizeToken(value); + if (CONFIDENCE_LEVELS.includes(token)) { + return token; + } + } + if (typeof value === "number" && Number.isFinite(value)) { + const normalized = value > 1 ? value / 100 : value; + if (normalized >= 0.75) + return "high"; + if (normalized >= 0.45) + return "medium"; + return "low"; + } + return fallback; +} +function coerceDomainRelevance(value, fallback) { + if (typeof value === "boolean") { + return value ? "in_scope" : "out_of_scope"; + } + const token = normalizeToken(value); + if (DOMAIN_RELEVANCE_VALUES.includes(token)) { + return token; + } + if (["in_scope_true", "in_scope_yes", "in_scope_relevant", "relevant", "supported"].includes(token)) { + return "in_scope"; + } + if (["out_scope", "outofscope", "offtopic", "off_topic", "irrelevant"].includes(token)) { + return "out_of_scope"; + } + if (token === "true") + return "in_scope"; + if (token === "false") + return "out_of_scope"; + if (["unknown", "ambiguous", "n_a", "na"].includes(token)) + return "unclear"; + return fallback; +} +function coerceBusinessScope(value, fallback, domainRelevance) { + const token = normalizeToken(value); + if (BUSINESS_SCOPE_VALUES.includes(token)) { + return token; + } + if (["company_specific", "company_accounting", "document_review", "settlement", "bank_settlement"].includes(token)) { + return "company_specific_accounting"; + } + if (["generic", "general_accounting", "general"].includes(token)) { + return "generic_accounting"; + } + if (["out_of_scope", "off_topic", "outside"].includes(token)) { + return "offtopic"; + } + if (token === "unknown") { + return "unclear"; + } + if (domainRelevance === "out_of_scope") { + return "offtopic"; + } + if (domainRelevance === "in_scope") { + return "company_specific_accounting"; + } + return fallback; +} +function coerceFragmentId(value, index, fallback) { + if (typeof value === "string" && value.trim().length > 0) { + return value.trim(); + } + if (typeof value === "number" && Number.isFinite(value)) { + const n = Math.max(1, Math.floor(value)); + return `F${n}`; + } + return fallback || `F${index + 1}`; +} +function parseYear(value) { + if (typeof value === "number" && Number.isInteger(value) && value >= 1900 && value <= 2200) { + return value; + } + if (typeof value === "string") { + const trimmed = value.trim(); + if (/^\d{4}$/.test(trimmed)) { + const parsed = Number.parseInt(trimmed, 10); + if (Number.isInteger(parsed) && parsed >= 1900 && parsed <= 2200) { + return parsed; + } + } + } + return null; +} +function parseMonth(value) { + if (typeof value === "number" && Number.isInteger(value) && value >= 1 && value <= 12) { + return value; + } + if (typeof value === "string") { + const trimmed = value.trim(); + if (/^\d{1,2}$/.test(trimmed)) { + const parsed = Number.parseInt(trimmed, 10); + if (parsed >= 1 && parsed <= 12) { + return parsed; + } + } + } + return null; +} +function coerceTimeScope(value, rawText, fallback) { + if (value && typeof value === "object") { + const source = value; + const rawType = normalizeToken(source.type); + const confidence = coerceConfidence(source.confidence, fallback.confidence); + if (["explicit", "inferred", "missing"].includes(rawType)) { + if (rawType === "missing") { + return { + type: "missing", + value: null, + confidence + }; + } + return { + type: rawType, + value: toOptionalString(source.value), + confidence + }; + } + const periodType = normalizeToken(source.period_type); + const year = parseYear(source.year); + const month = parseMonth(source.month); + if ((periodType === "year" || (periodType.length === 0 && year !== null)) && year !== null) { + return { + type: "explicit", + value: String(year), + confidence: confidence === "low" ? "medium" : confidence + }; + } + if ((periodType === "month" || periodType === "year_month" || (year !== null && month !== null)) && year !== null && month !== null) { + return { + type: "explicit", + value: `${year}-${String(month).padStart(2, "0")}`, + confidence: confidence === "low" ? "medium" : confidence + }; + } + } + const inferred = inferTimeScope(rawText); + if (inferred.type !== "missing") { + return inferred; + } + return fallback; +} +function coerceFlags(value, fallback) { + if (!value || typeof value !== "object") { + return fallback; + } + const source = value; + const pick = (key, aliases = []) => { + if (key in source) { + return coerceBoolean(source[key], fallback[key]); + } + for (const alias of aliases) { + if (alias in source) { + return coerceBoolean(source[alias], fallback[key]); + } + } + return fallback[key]; + }; + return { + has_multi_entity_scope: pick("has_multi_entity_scope", ["multi_entity_scope"]), + asks_for_chain_explanation: pick("asks_for_chain_explanation", ["asks_for_chain", "chain_explanation"]), + asks_for_ranking_or_top: pick("asks_for_ranking_or_top", ["asks_for_ranking", "asks_for_top"]), + asks_for_period_summary: pick("asks_for_period_summary", ["period_summary"]), + asks_for_rule_check: pick("asks_for_rule_check", ["rule_check"]), + asks_for_anomaly_scan: pick("asks_for_anomaly_scan", ["anomaly_scan"]), + asks_for_exact_object_trace: pick("asks_for_exact_object_trace", ["exact_object_trace"]), + asks_for_evidence: pick("asks_for_evidence", ["evidence"]), + mentions_period_close_context: pick("mentions_period_close_context", ["period_close_context"]) + }; +} +function mapCandidateLabel(value) { + const token = normalizeToken(value); + if (CANDIDATE_LABEL_VALUES.includes(token)) { + return token; + } + if (["show_documents", "document_list", "show_docs", "point_answer", "lookup"].includes(token)) { + return "simple_factual"; + } + if (["ranking", "top", "summary", "analytical"].includes(token)) { + return "heavy_analytical"; + } + if (["chain", "cross", "cross_domain"].includes(token)) { + return "cross_entity"; + } + if (["rule_check", "control", "rules"].includes(token)) { + return "rule_based_account_control"; + } + if (["risk_scan", "anomaly", "risk"].includes(token)) { + return "anomaly_probe"; + } + if (["period_close", "month_close"].includes(token)) { + return "period_close_risk"; + } + if (["ambiguous", "unclear"].includes(token)) { + return "ambiguous_human_query"; + } + return null; +} +function coerceCandidateLabels(value, flags, domainRelevance, fallback) { + const parsed = coerceStringArray(value) + .map((item) => mapCandidateLabel(item)) + .filter((item) => Boolean(item)); + if (parsed.length > 0) { + return Array.from(new Set(parsed)); + } + const inferred = pickCandidateLabels(flags, domainRelevance); + if (inferred.length > 0) { + return inferred; + } + return fallback; +} +function coerceFragmentV2(rawFragment, index, userMessage) { + const source = rawFragment && typeof rawFragment === "object" ? rawFragment : {}; + const rawText = toOptionalString(source.raw_fragment_text) ?? + toOptionalString(source.rawText) ?? + toOptionalString(source.fragment_text) ?? + toOptionalString(source.text) ?? + userMessage.trim(); + const base = buildFragmentV2(rawText, index) ?? buildFragmentV2(userMessage, index); + if (!base) { + return null; + } + const domainRelevance = coerceDomainRelevance(source.domain_relevance, base.domain_relevance); + const businessScope = coerceBusinessScope(source.business_scope, base.business_scope, domainRelevance); + const flags = coerceFlags(source.flags, base.flags); + const entityHints = coerceStringArray(source.entity_hints); + const accountHints = coerceStringArray(source.account_hints); + const documentHints = coerceStringArray(source.document_hints); + const registerHints = coerceStringArray(source.register_hints); + return { + fragment_id: coerceFragmentId(source.fragment_id, index, base.fragment_id), + raw_fragment_text: rawText, + normalized_fragment_text: toOptionalString(source.normalized_fragment_text) ?? base.normalized_fragment_text, + domain_relevance: domainRelevance, + business_scope: businessScope, + entity_hints: entityHints.length > 0 ? entityHints : base.entity_hints, + account_hints: accountHints.length > 0 ? accountHints : base.account_hints, + document_hints: documentHints.length > 0 ? documentHints : base.document_hints, + register_hints: registerHints.length > 0 ? registerHints : base.register_hints, + time_scope: coerceTimeScope(source.time_scope, rawText, base.time_scope), + flags, + candidate_labels: coerceCandidateLabels(source.candidate_labels, flags, domainRelevance, base.candidate_labels), + confidence: coerceConfidence(source.confidence, base.confidence) + }; +} +function coerceDiscardedFragments(value) { + if (!Array.isArray(value)) { + return []; + } + const collected = []; + for (const item of value) { + if (!item || typeof item !== "object") { + continue; + } + const source = item; + const raw = toOptionalString(source.raw_fragment_text); + const reason = toOptionalString(source.reason); + if (!raw || !reason) { + continue; + } + collected.push({ + raw_fragment_text: raw, + reason + }); + } + return collected; +} +function coerceScopeConfidence(value, fallback) { + return coerceConfidence(value, fallback); +} +function coerceGlobalNotes(value, fallbackNeedsClarification) { + if (!value || typeof value !== "object") { + return { + needs_clarification: fallbackNeedsClarification, + clarification_reason: fallbackNeedsClarification ? "clarification_required" : null + }; + } + const source = value; + const needs = coerceBoolean(source.needs_clarification, fallbackNeedsClarification); + const clarificationReason = toOptionalString(source.clarification_reason); + return { + needs_clarification: needs, + clarification_reason: needs ? clarificationReason ?? "clarification_required" : null + }; +} +function coerceNormalizedCandidateV2(candidate, userMessage) { + if (!candidate || typeof candidate !== "object") { + return null; + } + const source = candidate; + const sourceFragments = Array.isArray(source.fragments) + ? source.fragments + : source.fragment && typeof source.fragment === "object" + ? [source.fragment] + : splitIntoCandidateFragments(userMessage).map((text) => ({ raw_fragment_text: text })); + const fragments = sourceFragments + .map((item, index) => coerceFragmentV2(item, index, userMessage)) + .filter((item) => item !== null); + const inScopeCount = fragments.filter((item) => item.domain_relevance === "in_scope").length; + const unclearCount = fragments.filter((item) => item.domain_relevance === "unclear").length; + const messageInScope = inScopeCount > 0; + const inferredScopeConfidence = messageInScope ? (unclearCount > 0 ? "medium" : "high") : "low"; + const inferredNeedsClarification = messageInScope && (unclearCount > 0 || fragments.some((item) => item.time_scope.type === "missing")); + return { + schema_version: "normalized_query_v2", + user_message_raw: toOptionalString(source.user_message_raw) ?? userMessage, + message_in_scope: coerceBoolean(source.message_in_scope, messageInScope), + scope_confidence: coerceScopeConfidence(source.scope_confidence, inferredScopeConfidence), + contains_multiple_tasks: coerceBoolean(source.contains_multiple_tasks, fragments.length > 1), + fragments, + discarded_fragments: coerceDiscardedFragments(source.discarded_fragments), + global_notes: coerceGlobalNotes(source.global_notes, inferredNeedsClarification) + }; +} function collectDateSpans(text) { const spans = []; const patterns = [ @@ -927,6 +1313,7 @@ class NormalizerService { try { normalizedCandidate = safeJsonParse(outputText); if (schemaVersion !== "v1") { + normalizedCandidate = coerceNormalizedCandidateV2(normalizedCandidate, payload.userQuestion) ?? normalizedCandidate; normalizedCandidate = applyCompanyScopeResolutionV2(normalizedCandidate, payload.userQuestion, payload.context); } if (schemaVersion === "v2_0_2") { @@ -975,6 +1362,7 @@ class NormalizerService { try { normalizedCandidate = safeJsonParse(outputText); if (schemaVersion !== "v1") { + normalizedCandidate = coerceNormalizedCandidateV2(normalizedCandidate, payload.userQuestion) ?? normalizedCandidate; normalizedCandidate = applyCompanyScopeResolutionV2(normalizedCandidate, payload.userQuestion, payload.context); } if (schemaVersion === "v2_0_2") { diff --git a/llm_normalizer/backend/src/services/addressFilterExtractor.ts b/llm_normalizer/backend/src/services/addressFilterExtractor.ts index e9f27a4..bb794bb 100644 --- a/llm_normalizer/backend/src/services/addressFilterExtractor.ts +++ b/llm_normalizer/backend/src/services/addressFilterExtractor.ts @@ -1,4 +1,5 @@ import type { AddressFilterExtraction, AddressFilterSet, AddressIntent } from "../types/addressQuery"; +import iconv from "iconv-lite"; const ACCOUNT_PATTERN = /(?:сч[её]т|счет|account)[^0-9]{0,12}(\d{2}(?:[.,]\d{1,2})?)/i; const LIMIT_PATTERN = /(?:\btop\b|\blimit\b|\bпервые\b|\bтоп\b)\s*(\d{1,3})/i; @@ -14,8 +15,10 @@ const YEAR_RANGE_PATTERN = /(?:за|for|с|from)?\s*(20\d{2})\s*(?:[-‐‑‒–—―−]|до|to|по)\s*(20\d{2})(?:\s*(?:г(?:од|ода)?\.?|year))?(?=[^\d]|$)/iu; const YEAR_RANGE_LOOSE_PATTERN = /\b(20\d{2})\b\s*(?:[-‐‑‒–—―−]|до|to|по)\s*\b(20\d{2})\b/iu; const YEAR_PERIOD_PATTERN = - /(?:за|for)\s*(20\d{2})(?!\s*(?:[-‐‑‒–—―−]|до|to|по)\s*20\d{2})\s*(?:г(?:од|ода)?\.?|year)?/iu; -const YEAR_PERIOD_SHORT_PATTERN = /(?:^|[\s,.;:!?()\-])(\d{2})\s*(?:г(?:од|ода)?\.?|year)(?=$|[\s,.;:!?()\-])/iu; + /(?:за|for)\s*(20\d{2})(?!\s*(?:[-‐‑‒–—―−]|до|to|по)\s*20\d{2})\s*(?:г(?:од|ода)?\.?|year|god)?/iu; +const YEAR_PERIOD_SHORT_PATTERN = /(?:^|[\s,.;:!?()\-])(\d{2})\s*(?:г(?:од|ода)?\.?|year|god)(?=$|[\s,.;:!?()\-])/iu; +const YEAR_PERIOD_SHORT_ORDINAL_PATTERN = + /(?:^|[\s,.;:!?()\-])(?:за|for|на|in)?\s*(\d{2})\s*(?:[-\s]?(?:й|ый|ой|th))(?:\s*(?:г(?:од|ода)?\.?|year|period|период))?(?=$|[\s,.;:!?()\-])/iu; const YEAR_PERIOD_ANY_PATTERN = /(?:^|[\s,.;:!?()\-])((?:19|20)\d{2})(?!\s*(?:[-‐‑‒–—―−]|до|to|по)\s*(?:19|20)\d{2})(?![.\/-]\d)(?:\s*(?:г(?:од|ода)?\.?|year))?(?=$|[\s,.;:!?()\-])/iu; const MONTH_PERIOD_NUMERIC_MONTH_YEAR_PATTERN = @@ -26,6 +29,58 @@ const MONTH_PERIOD_NAME_PATTERN = /(?:^|[\s,.;:!?()\-])(?:за|for|на|in)?\s*([a-zа-яё]+)\s+(20\d{2})(?:\s*г(?:од|ода|\\.)?)?(?=$|[\s,.;:!?()\-])/iu; const MONTH_PERIOD_NAME_YEAR_FIRST_PATTERN = /(?:^|[\s,.;:!?()\-])(?:за|for|на|in)?\s*(20\d{2})(?:\s*г(?:од|ода|\\.)?)?\s+([a-zа-яё]+)(?=$|[\s,.;:!?()\-])/iu; +const DOC_SIGNAL_PATTERN = + "(?:док(?:и|умент|ументы|ументов|умам|ума)|docs?|documents?|doki|dokument(?:y|ov|am|a)?)"; + +function textMojibakeScore(value: string): number { + const source = String(value ?? ""); + const cyrillic = (source.match(/[А-Яа-яЁё]/g) ?? []).length; + const latin = (source.match(/[A-Za-z]/g) ?? []).length; + const hardMarkers = (source.match(/[Ѓѓ‚„…†‡€‰‹ЉЊЌЋЏ‘’“”•–—™љ›њќћџ]/g) ?? []).length; + const pairMarkers = (source.match(/(?:Р.|С.|Ð.|Ñ.)/g) ?? []).length; + return cyrillic + latin - hardMarkers * 3 - pairMarkers * 2; +} + +function looksLikeMojibake(value: string): boolean { + const source = String(value ?? ""); + if (!source.trim()) { + return false; + } + if (/[Ѓѓ‚„…†‡€‰‹ЉЊЌЋЏ‘’“”•–—™љ›њќћџ]/.test(source)) { + return true; + } + return (source.match(/(?:Р.|С.|Ð.|Ñ.)/g) ?? []).length >= 2; +} + +function decodeUtf8FromWin1251Mojibake(value: string): string { + if (!looksLikeMojibake(value)) { + return value; + } + try { + const bytes = iconv.encode(value, "win1251"); + const decoded = bytes.toString("utf8"); + return textMojibakeScore(decoded) > textMojibakeScore(value) ? decoded : value; + } catch { + return value; + } +} + +function decodeUtf8FromLatin1Mojibake(value: string): string { + if (!looksLikeMojibake(value)) { + return value; + } + try { + const decoded = Buffer.from(value, "latin1").toString("utf8"); + return textMojibakeScore(decoded) > textMojibakeScore(value) ? decoded : value; + } catch { + return value; + } +} + +function normalizeMojibakeString(value: string): string { + const fromWin1251 = decodeUtf8FromWin1251Mojibake(value); + return decodeUtf8FromLatin1Mojibake(fromWin1251); +} function toIsoDate(year: number, month: number, day: number): string | null { if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day)) { @@ -200,18 +255,30 @@ function extractYearPeriod(text: string): { period_from?: string; period_to?: st } const shortYearMatch = text.match(YEAR_PERIOD_SHORT_PATTERN); - if (!shortYearMatch) { - return {}; + if (shortYearMatch) { + const shortYear = Number(shortYearMatch[1]); + if (Number.isFinite(shortYear) && shortYear >= 0 && shortYear <= 99) { + const year = 2000 + shortYear; + return { + period_from: `${year}-01-01`, + period_to: `${year}-12-31` + }; + } } - const shortYear = Number(shortYearMatch[1]); - if (!Number.isFinite(shortYear) || shortYear < 0 || shortYear > 99) { - return {}; + + const shortOrdinalMatch = text.match(YEAR_PERIOD_SHORT_ORDINAL_PATTERN); + if (shortOrdinalMatch) { + const shortYear = Number(shortOrdinalMatch[1]); + if (Number.isFinite(shortYear) && shortYear >= 0 && shortYear <= 99) { + const year = 2000 + shortYear; + return { + period_from: `${year}-01-01`, + period_to: `${year}-12-31` + }; + } } - const year = 2000 + shortYear; - return { - period_from: `${year}-01-01`, - period_to: `${year}-12-31` - }; + + return {}; } function extractYearRangePeriod(text: string): { period_from?: string; period_to?: string } { @@ -374,14 +441,36 @@ function isLikelyCounterpartyToken(rawToken: string): boolean { "нахуй", "покеж", "покажи", - "выведи" + "показать", + "выведи", + "show", + "list", + "please", + "vse", + "all", + "kakie", + "kakoi", + "est", + "pokaji", + "pokazhi", + "pokazh", + "pokezh", + "doki", + "doky", + "dokument", + "dokumenty", + "documents", + "docs" ]); return !stopWords.has(lowered); } function hasDocsOrBankSignal(text: string): boolean { const lowered = String(text ?? "").toLowerCase(); - return /(?:док(?:и|умент|ументы|ументов)|docs?|documents?|банк|выписк|платеж|платёж|оплат|transactions?|bank\s+ops|bank\s+operations?)/iu.test( + return new RegExp( + `(?:${DOC_SIGNAL_PATTERN}|банк|выписк|платеж|платёж|оплат|transactions?|bank\\s+ops|bank\\s+operations?|payment|payments?|platezh|oplata)`, + "iu" + ).test( lowered ); } @@ -448,9 +537,11 @@ function extractCounterpartyFromFreeTextHeuristic(text: string): string | undefi function extractImplicitCounterpartyValue(text: string): string | undefined { const input = String(text ?? ""); - const beforeDocsMatch = input.match( - /(?:^|\s)([a-zа-яё][a-zа-яё0-9._-]{1,})\s+(?:док(?:и|ум(?:ент(?:ы|ов|ам|а)?)?)|docs?|documents?)(?=[\s,.;:!?)]|$)/iu + const beforeDocsPattern = new RegExp( + `(?:^|\\s)([a-zа-яё][a-zа-яё0-9._-]{1,})\\s+${DOC_SIGNAL_PATTERN}(?=[\\s,.;:!?)]|$)`, + "iu" ); + const beforeDocsMatch = input.match(beforeDocsPattern); if (beforeDocsMatch) { const candidate = String(beforeDocsMatch[1] ?? "").trim(); if (isLikelyCounterpartyToken(candidate)) { @@ -458,9 +549,11 @@ function extractImplicitCounterpartyValue(text: string): string | undefined { } } - const afterDocsMatch = input.match( - /(?:док(?:и|ум(?:ент(?:ы|ов|ам|а)?)?)|docs?|documents?)\s+(?:по\s+)?([a-zа-яё][a-zа-яё0-9._-]{1,})(?=[\s,.;:!?)]|$)/iu + const afterDocsPattern = new RegExp( + `${DOC_SIGNAL_PATTERN}\\s+(?:по\\s+)?([a-zа-яё][a-zа-яё0-9._-]{1,})(?=[\\s,.;:!?)]|$)`, + "iu" ); + const afterDocsMatch = input.match(afterDocsPattern); if (afterDocsMatch) { const candidate = String(afterDocsMatch[1] ?? "").trim(); if (isLikelyCounterpartyToken(candidate)) { @@ -488,7 +581,8 @@ function requiredFiltersByIntent(intent: AddressIntent): Array token.trim()) + .filter((token) => token.length >= 2); + return tokens.some((token) => { + const lowered = token.toLowerCase(); + if (stopWords.has(lowered)) { + return false; + } + if (/^\d+$/.test(lowered)) { + return false; + } + if (/^(?:19|20)\d{2}$/.test(lowered)) { + return false; + } + return true; + }); +} + function hasAnyToken(text: string, tokens: string[]): boolean { return tokens.some((token) => text.includes(token)); } @@ -186,6 +272,14 @@ export function detectAddressQuestionMode(userMessage: string): AddressModeDetec }; } + if (!hasDeepReasoning && hasDocsOrBankSignal(text) && (hasLooseByAnchor || hasLikelyCounterpartyToken(text))) { + return { + mode: "address_query", + confidence: "medium", + reasons: ["docs_or_bank_signal_detected", "anchor_like_token_detected"] + }; + } + if (hasDeepReasoning) { return { mode: "deep_analysis", diff --git a/llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts b/llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts index 2a88c07..5b9e6a8 100644 --- a/llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts +++ b/llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts @@ -1,4 +1,4 @@ -import type { +import type { AddressFilterSet, AddressIntent, AddressIntentResolution, @@ -45,7 +45,14 @@ function toNonEmptyString(value: unknown): string | null { } function hasAllTimeHint(text: string): boolean { - return /(?:за\s+вс[её]\s+время|за\s+весь\s+период|за\s+всю\s+истори(?:ю|и)|за\s+любой\s+период|for\s+all\s+time|all\s+time|for\s+entire\s+period|entire\s+period|for\s+any\s+period|any\s+period|for\s+full\s+history|full\s+history)/iu.test( + const normalized = String(text ?? ""); + return /(?:за\s+вс[её]\s+время|за\s+весь\s+период|за\s+весь\s+срок|за\s+всю\s+истори(?:ю|и)|за\s+любой\s+период|за\s+любой\s+срок|for\s+all\s+time|all\s+time|for\s+entire\s+period|entire\s+period|for\s+any\s+period|any\s+period|for\s+full\s+history|full\s+history)/iu.test( + normalized + ); +} + +function hasSameDateHint(text: string): boolean { + return /(?:на\s+ту\s+же\s+дат[ауеы]|на\s+эту\s+же\s+дат[ауеы]|та\s+же\s+дата|same\s+date|as\s+of\s+same\s+date|the\s+same\s+date)/iu.test( String(text ?? "") ); } @@ -58,10 +65,23 @@ export function hasAddressFollowupContextSignal(text: string): boolean { if (hasAllTimeHint(normalized)) { return true; } - if (/(?:^|\s)(?:и|а\s+еще|а\s+ещё|еще|ещё|также|по\s+этому|по\s+тому|это\s+же|в\s+этом|тот\s+же|also|same|that)/iu.test(normalized)) { + if ( + /(?:^|\s)(?:и|а\s+еще|а\s+ещё|еще|ещё|также|а\s+теперь|теперь|по\s+этому|по\s+тому|это\s+же|в\s+этом|тот\s+же|also|same|that|then|now)/iu.test( + normalized + ) + ) { return true; } - return normalized.split(/\s+/).filter(Boolean).length <= 8; + if (hasSameDateHint(normalized)) { + return true; + } + + const tokenCount = normalized.split(/\s+/).filter(Boolean).length; + const hasPeriodLiteral = /\b(?:19|20)\d{2}(?:[./-](?:0?[1-9]|1[0-2]))?\b/.test(normalized); + if (tokenCount <= 8 && hasPeriodLiteral) { + return true; + } + return tokenCount <= 6; } function mergeFollowupFilters( @@ -81,7 +101,11 @@ function mergeFollowupFilters( const previousCounterparty = toNonEmptyString(previous.counterparty); const previousContract = toNonEmptyString(previous.contract); const previousAccount = toNonEmptyString(previous.account); + const previousAsOfDate = toNonEmptyString(previous.as_of_date); + const previousPeriodFrom = toNonEmptyString(previous.period_from); + const previousPeriodTo = toNonEmptyString(previous.period_to); const allTimeRequested = hasAllTimeHint(userMessage); + const sameDateRequested = hasSameDateHint(userMessage); if (intent === "list_documents_by_counterparty" || intent === "bank_operations_by_counterparty") { if (!toNonEmptyString(merged.counterparty)) { @@ -97,21 +121,24 @@ function mergeFollowupFilters( if (intent === "account_balance_snapshot" || intent === "documents_forming_balance") { if (!toNonEmptyString(merged.account)) { - const inheritedAccount = - previousAccount ?? - (followupContext.previous_anchor_type === "account" ? previousAnchorValue : null); + const inheritedAccount = previousAccount ?? (followupContext.previous_anchor_type === "account" ? previousAnchorValue : null); if (inheritedAccount) { merged.account = inheritedAccount; reasons.push("account_from_followup_context"); } } + if (sameDateRequested) { + const inheritedAsOfDate = previousAsOfDate ?? previousPeriodTo ?? previousPeriodFrom; + if (inheritedAsOfDate && merged.as_of_date !== inheritedAsOfDate) { + merged.as_of_date = inheritedAsOfDate; + reasons.push("as_of_date_from_followup_context"); + } + } } if (intent === "open_items_by_counterparty_or_contract" || intent === "list_open_contracts") { if (!toNonEmptyString(merged.contract)) { - const inheritedContract = - previousContract ?? - (followupContext.previous_anchor_type === "contract" ? previousAnchorValue : null); + const inheritedContract = previousContract ?? (followupContext.previous_anchor_type === "contract" ? previousAnchorValue : null); if (inheritedContract) { merged.contract = inheritedContract; reasons.push("contract_from_followup_context"); @@ -140,11 +167,11 @@ function mergeFollowupFilters( const currentHasPeriod = hasExplicitPeriodWindow(merged); const previousHasPeriod = hasExplicitPeriodWindow(previous); if (!currentHasPeriod && previousHasPeriod && hasAddressFollowupContextSignal(userMessage)) { - if (toNonEmptyString(previous.period_from)) { - merged.period_from = previous.period_from; + if (previousPeriodFrom) { + merged.period_from = previousPeriodFrom; } - if (toNonEmptyString(previous.period_to)) { - merged.period_to = previous.period_to; + if (previousPeriodTo) { + merged.period_to = previousPeriodTo; } reasons.push("period_from_followup_context"); } @@ -241,4 +268,3 @@ export function runAddressDecomposeStage( baseReasons }; } - diff --git a/llm_normalizer/backend/src/services/assistantService.ts b/llm_normalizer/backend/src/services/assistantService.ts index da16776..4e5883a 100644 --- a/llm_normalizer/backend/src/services/assistantService.ts +++ b/llm_normalizer/backend/src/services/assistantService.ts @@ -13,6 +13,7 @@ import * as companyAnchorResolver_1 from "./companyAnchorResolver"; import * as assistantRuntimeGuards_1 from "./assistantRuntimeGuards"; import * as assistantClaimBoundEvidence_1 from "./assistantClaimBoundEvidence"; import * as addressQueryService_1 from "./addressQueryService"; +import iconv from "iconv-lite"; function retrievalSummaryForRoute(route) { if (route === "store_canonical") return "Canonical accounting data path selected."; @@ -1386,7 +1387,7 @@ function hasAccountingSignal(text) { } function hasFollowupMarker(text) { const compact = compactWhitespace(text.toLowerCase()); - return /^(и|а еще|а ещё|еще|ещё|добав|уточн|продолж|также|а если|plus|also|dobav|utochn|prodolzh)/i.test(compact); + return /^(и|а еще|а ещё|еще|ещё|добав|уточн|продолж|также|а если|а теперь|теперь|plus|also|dobav|utochn|prodolzh|then|now)/i.test(compact); } function hasReferentialPointer(text) { return /(по этому|по тому|это же|этой|этим|этому|из этого|в этом|тот же|same thing|that one|po etomu|po tomu)/i.test(text.toLowerCase()); @@ -1780,6 +1781,153 @@ function toNonEmptyString(value) { const text = String(value).trim(); return text.length > 0 ? text : null; } +const ADDRESS_PREDECOMPOSE_NOISE_TOKENS = new Set([ + "за", + "с", + "по", + "на", + "и", + "или", + "док", + "доки", + "docs", + "documents", + "doki", + "dokument", + "dokumenty", + "документ", + "документы", + "документов", + "банк", + "банковские", + "операции", + "платеж", + "платёж", + "платежи", + "контрагент", + "контрагенту", + "контрагента", + "год", + "года", + "г", + "year", + "god", + "плс", + "pls", + "пж", + "пжлст", + "пожалуйста", + "please", + "покеж", + "покажи", + "показать", + "show", + "list", + "выведи", + "которые", + "какие", + "какой", + "есть", + "est", + "kakie", + "kakoi", + "vse", + "all", + "blya", + "blyat", + "епт", + "ёпт", + "бля" +]); +function textMojibakeScoreForAddress(value) { + const source = String(value ?? ""); + const cyrillic = (source.match(/[А-Яа-яЁё]/g) ?? []).length; + const latin = (source.match(/[A-Za-z]/g) ?? []).length; + const hardMarkers = (source.match(/[Ѓѓ‚„…†‡€‰‹ЉЊЌЋЏ‘’“”•–—™љ›њќћџ]/g) ?? []).length; + const pairMarkers = (source.match(/(?:Р.|С.|Ð.|Ñ.)/g) ?? []).length; + return cyrillic + latin - hardMarkers * 3 - pairMarkers * 2; +} +function looksLikeMojibakeForAddress(value) { + const source = String(value ?? ""); + if (!source.trim()) { + return false; + } + if (/[Ѓѓ‚„…†‡€‰‹ЉЊЌЋЏ‘’“”•–—™љ›њќћџ]/.test(source)) { + return true; + } + return (source.match(/(?:Р.|С.|Ð.|Ñ.)/g) ?? []).length >= 2; +} +function repairAddressMojibake(value) { + const source = String(value ?? ""); + if (!looksLikeMojibakeForAddress(source)) { + return source; + } + let candidate = source; + try { + const fromWin1251 = iconv.encode(candidate, "win1251").toString("utf8"); + if (textMojibakeScoreForAddress(fromWin1251) > textMojibakeScoreForAddress(candidate)) { + candidate = fromWin1251; + } + } + catch (_error) { } + try { + const fromLatin1 = Buffer.from(candidate, "latin1").toString("utf8"); + if (textMojibakeScoreForAddress(fromLatin1) > textMojibakeScoreForAddress(candidate)) { + candidate = fromLatin1; + } + } + catch (_error) { } + return candidate; +} +function extractAddressAnchorTokens(value) { + const source = repairAddressMojibake(compactWhitespace(String(value ?? "").toLowerCase())); + if (!source) { + return []; + } + const tokens = source + .split(/[^a-zа-яё0-9._-]+/iu) + .map((item) => item.trim()) + .filter((item) => item.length >= 2); + const filtered = []; + for (const token of tokens) { + if (/^\d+$/.test(token)) { + continue; + } + if (/^(?:19|20)\d{2}$/.test(token)) { + continue; + } + if (/^(?:0?[1-9]|1[0-2])[./-](?:19|20)\d{2}$/.test(token) || /^(?:19|20)\d{2}[./-](?:0?[1-9]|1[0-2])$/.test(token)) { + continue; + } + if (/^(?:янв|фев|мар|апр|май|июн|июл|авг|сен|сент|окт|ноя|дек|january|february|march|april|may|june|july|august|september|october|november|december)/i.test(token)) { + continue; + } + if (ADDRESS_PREDECOMPOSE_NOISE_TOKENS.has(token)) { + continue; + } + filtered.push(token); + } + return Array.from(new Set(filtered)); +} +function selectPreferredAddressFragmentCandidate(rawText, normalizedText) { + const normalizedCandidate = compactWhitespace(repairAddressMojibake(normalizedText ?? "")); + const rawCandidate = compactWhitespace(repairAddressMojibake(rawText ?? "")); + if (!normalizedCandidate && !rawCandidate) { + return null; + } + if (!normalizedCandidate) { + return rawCandidate; + } + if (!rawCandidate) { + return normalizedCandidate; + } + const normalizedAnchors = extractAddressAnchorTokens(normalizedCandidate); + const rawAnchors = extractAddressAnchorTokens(rawCandidate); + if (rawAnchors.length > 0 && normalizedAnchors.length === 0) { + return rawCandidate; + } + return normalizedCandidate; +} function readAddressFilterString(addressDebug, key) { const filters = addressDebug?.extracted_filters; if (!filters || typeof filters !== "object") { @@ -1801,7 +1949,8 @@ function findLastAddressAssistantDebug(items) { return null; } function hasAddressFollowupContextSignal(userMessage) { - const text = compactWhitespace(String(userMessage ?? "").toLowerCase()); + const repaired = repairAddressMojibake(String(userMessage ?? "")); + const text = compactWhitespace(repaired.toLowerCase()); if (!text) { return false; } @@ -1811,10 +1960,16 @@ function hasAddressFollowupContextSignal(userMessage) { if (hasReferentialPointer(text)) { return true; } + if (/(?:на\s+ту\s+же\s+дат[ауеы]|на\s+эту\s+же\s+дат[ауеы]|same\s+date|the\s+same\s+date|as\s+of\s+same\s+date)/iu.test(text)) { + return true; + } const shortFollowup = countTokens(text) <= 8; if (shortFollowup && hasFollowupMarker(text)) { return true; } + if (shortFollowup && hasPeriodLiteral(text)) { + return true; + } return false; } function resolveAddressFollowupCarryoverContext(userMessage, items) { @@ -1851,11 +2006,12 @@ function resolveAddressFollowupCarryoverContext(userMessage, items) { }; } function isAddressLlmPreDecomposeCandidate(userMessage) { - const text = compactWhitespace(String(userMessage ?? "").toLowerCase()); + const repaired = repairAddressMojibake(String(userMessage ?? "")); + const text = compactWhitespace(repaired.toLowerCase()); if (!text) { return false; } - return /(?:\bдок\b|доки|документ|контрагент|договор|остаток|сч(?:е|ё)т|банк|выписк|платеж|оплат|поступлен|реализац|сверк|взаиморасч|кто\s+должен|show|list|documents?|counterparty|contract|account|balance|bank\s+operations?)/i.test(text); + return /(?:\bдок\b|доки|документ|контрагент|договор|остаток|сч(?:е|ё)т|сальдо|банк|выписк|платеж|оплат|поступлен|поступлени|списан|реализац|сверк|взаиморасч|кто\s+должен|show|list|documents?|counterparty|contract|account|balance|bank\s+operations?|doki|dokument(?:y|ov|am|a)?|platezh|oplata|schet|saldo)/i.test(text); } function extractAddressQuestionFromNormalized(normalized) { if (!normalized || typeof normalized !== "object") { @@ -1873,13 +2029,16 @@ function extractAddressQuestionFromNormalized(normalized) { continue; } const readiness = String(fragment.execution_readiness ?? "").trim().toLowerCase(); - if (readiness === "no_route") { - continue; - } const normalizedText = toNonEmptyString(fragment.normalized_fragment_text); const rawText = toNonEmptyString(fragment.raw_fragment_text); - const candidate = compactWhitespace(normalizedText ?? rawText ?? ""); + const candidate = selectPreferredAddressFragmentCandidate(rawText ?? "", normalizedText ?? ""); + if (!candidate) { + continue; + } if (candidate.length >= 3 && candidate.length <= 500) { + if (readiness === "no_route" && !isAddressLlmPreDecomposeCandidate(candidate)) { + continue; + } return candidate; } } @@ -1986,13 +2145,16 @@ function extractAddressQuestionFromRawNormalizerOutput(rawModelOutput) { continue; } const readiness = String(fragment.execution_readiness ?? "").trim().toLowerCase(); - if (readiness === "no_route") { - continue; - } const normalizedText = toNonEmptyString(fragment.normalized_fragment_text); const rawText = toNonEmptyString(fragment.raw_fragment_text); - const candidate = compactWhitespace(normalizedText ?? rawText ?? ""); + const candidate = selectPreferredAddressFragmentCandidate(rawText ?? "", normalizedText ?? ""); + if (!candidate) { + continue; + } if (candidate.length >= 3 && candidate.length <= 500) { + if (readiness === "no_route" && !isAddressLlmPreDecomposeCandidate(candidate)) { + continue; + } return candidate; } } @@ -2203,12 +2365,21 @@ export class AssistantService { reason: "disabled_by_feature_flag" }; const addressInputMessage = toNonEmptyString(addressPreDecompose?.effectiveMessage) ?? userMessage; + const carryover = resolveAddressFollowupCarryoverContext(userMessage, session.items); + const shouldPreferContextualLane = Boolean(carryover?.followupContext); + if (shouldPreferContextualLane) { + const contextualAddressLane = await this.addressQueryService.tryHandle(addressInputMessage, { + followupContext: carryover.followupContext + }); + if (contextualAddressLane?.handled) { + return finalizeAddressLaneResponse(contextualAddressLane, addressInputMessage, carryover, addressPreDecompose); + } + } const primaryAddressLane = await this.addressQueryService.tryHandle(addressInputMessage); if (primaryAddressLane?.handled) { return finalizeAddressLaneResponse(primaryAddressLane, addressInputMessage, null, addressPreDecompose); } - const carryover = resolveAddressFollowupCarryoverContext(userMessage, session.items); - if (carryover?.followupContext) { + if (!shouldPreferContextualLane && carryover?.followupContext) { const contextualAddressLane = await this.addressQueryService.tryHandle(addressInputMessage, { followupContext: carryover.followupContext }); diff --git a/llm_normalizer/backend/src/services/normalizerService.ts b/llm_normalizer/backend/src/services/normalizerService.ts index aa30c73..0fa11a2 100644 --- a/llm_normalizer/backend/src/services/normalizerService.ts +++ b/llm_normalizer/backend/src/services/normalizerService.ts @@ -6,6 +6,7 @@ import { toRouteHintSummary } from "./routeHintAdapter"; import { validateNormalized } from "./schemaValidator"; import { redactRequestPayload, saveEvalCase, saveTrace, type TraceRecord } from "./traceLogger"; import type { + DiscardedFragmentV2, ExecutionReadiness, NoRouteReason, NormalizeRequestPayload, @@ -27,6 +28,24 @@ const RETRY_INSTRUCTION_V1 = "IMPORTANT: return valid JSON strictly matching sch const RETRY_INSTRUCTION_V2 = "IMPORTANT: return valid JSON strictly matching schema normalized_query_v2. No markdown."; const RETRY_INSTRUCTION_V2_0_1 = "IMPORTANT: return valid JSON strictly matching schema normalized_query_v2_0_1. No markdown."; const RETRY_INSTRUCTION_V2_0_2 = "IMPORTANT: return valid JSON strictly matching schema normalized_query_v2_0_2. No markdown."; +const CONFIDENCE_LEVELS: ReadonlyArray = ["high", "medium", "low"]; +const DOMAIN_RELEVANCE_VALUES: ReadonlyArray = ["in_scope", "out_of_scope", "unclear"]; +const BUSINESS_SCOPE_VALUES: ReadonlyArray = [ + "company_specific_accounting", + "generic_accounting", + "offtopic", + "unclear" +]; +const CANDIDATE_LABEL_VALUES: ReadonlyArray = [ + "heavy_analytical", + "cross_entity", + "drilldown_explain", + "rule_based_account_control", + "anomaly_probe", + "period_close_risk", + "ambiguous_human_query", + "simple_factual" +]; function safeJsonParse(text: string): unknown { const cleaned = text.trim().replace(/^```json\s*/i, "").replace(/^```\s*/i, "").replace(/```$/i, "").trim(); @@ -79,6 +98,429 @@ function computeRetryMaxOutputTokens(current: number, rawModelResponse: unknown) return Math.min(escalated, 2400); } +function normalizeToken(value: unknown): string { + return String(value ?? "") + .trim() + .toLowerCase() + .replace(/[\s-]+/g, "_"); +} + +function toOptionalString(value: unknown): string | null { + if (typeof value !== "string") { + return null; + } + const trimmed = value.trim(); + return trimmed.length > 0 ? trimmed : null; +} + +function coerceBoolean(value: unknown, fallback = false): boolean { + if (typeof value === "boolean") { + return value; + } + if (typeof value === "number") { + if (value === 1) return true; + if (value === 0) return false; + return fallback; + } + if (typeof value === "string") { + const token = value.trim().toLowerCase(); + if (["true", "1", "yes", "y", "да", "ok"].includes(token)) { + return true; + } + if (["false", "0", "no", "n", "нет"].includes(token)) { + return false; + } + } + return fallback; +} + +function coerceStringArray(value: unknown): string[] { + if (Array.isArray(value)) { + return Array.from( + new Set( + value + .map((item) => (typeof item === "string" ? item.trim() : "")) + .filter((item) => item.length > 0) + ) + ); + } + if (typeof value === "string") { + return Array.from( + new Set( + value + .split(/[,\n;]+/) + .map((item) => item.trim()) + .filter((item) => item.length > 0) + ) + ); + } + return []; +} + +function coerceConfidence(value: unknown, fallback: NormalizedFragmentV2["confidence"]): NormalizedFragmentV2["confidence"] { + if (typeof value === "string") { + const token = normalizeToken(value); + if (CONFIDENCE_LEVELS.includes(token as NormalizedFragmentV2["confidence"])) { + return token as NormalizedFragmentV2["confidence"]; + } + } + if (typeof value === "number" && Number.isFinite(value)) { + const normalized = value > 1 ? value / 100 : value; + if (normalized >= 0.75) return "high"; + if (normalized >= 0.45) return "medium"; + return "low"; + } + return fallback; +} + +function coerceDomainRelevance( + value: unknown, + fallback: NormalizedFragmentV2["domain_relevance"] +): NormalizedFragmentV2["domain_relevance"] { + if (typeof value === "boolean") { + return value ? "in_scope" : "out_of_scope"; + } + const token = normalizeToken(value); + if (DOMAIN_RELEVANCE_VALUES.includes(token as NormalizedFragmentV2["domain_relevance"])) { + return token as NormalizedFragmentV2["domain_relevance"]; + } + if (["in_scope_true", "in_scope_yes", "in_scope_relevant", "relevant", "supported"].includes(token)) { + return "in_scope"; + } + if (["out_scope", "outofscope", "offtopic", "off_topic", "irrelevant"].includes(token)) { + return "out_of_scope"; + } + if (token === "true") return "in_scope"; + if (token === "false") return "out_of_scope"; + if (["unknown", "ambiguous", "n_a", "na"].includes(token)) return "unclear"; + return fallback; +} + +function coerceBusinessScope( + value: unknown, + fallback: NormalizedFragmentV2["business_scope"], + domainRelevance: NormalizedFragmentV2["domain_relevance"] +): NormalizedFragmentV2["business_scope"] { + const token = normalizeToken(value); + if (BUSINESS_SCOPE_VALUES.includes(token as NormalizedFragmentV2["business_scope"])) { + return token as NormalizedFragmentV2["business_scope"]; + } + if (["company_specific", "company_accounting", "document_review", "settlement", "bank_settlement"].includes(token)) { + return "company_specific_accounting"; + } + if (["generic", "general_accounting", "general"].includes(token)) { + return "generic_accounting"; + } + if (["out_of_scope", "off_topic", "outside"].includes(token)) { + return "offtopic"; + } + if (token === "unknown") { + return "unclear"; + } + if (domainRelevance === "out_of_scope") { + return "offtopic"; + } + if (domainRelevance === "in_scope") { + return "company_specific_accounting"; + } + return fallback; +} + +function coerceFragmentId(value: unknown, index: number, fallback: string): string { + if (typeof value === "string" && value.trim().length > 0) { + return value.trim(); + } + if (typeof value === "number" && Number.isFinite(value)) { + const n = Math.max(1, Math.floor(value)); + return `F${n}`; + } + return fallback || `F${index + 1}`; +} + +function parseYear(value: unknown): number | null { + if (typeof value === "number" && Number.isInteger(value) && value >= 1900 && value <= 2200) { + return value; + } + if (typeof value === "string") { + const trimmed = value.trim(); + if (/^\d{4}$/.test(trimmed)) { + const parsed = Number.parseInt(trimmed, 10); + if (Number.isInteger(parsed) && parsed >= 1900 && parsed <= 2200) { + return parsed; + } + } + } + return null; +} + +function parseMonth(value: unknown): number | null { + if (typeof value === "number" && Number.isInteger(value) && value >= 1 && value <= 12) { + return value; + } + if (typeof value === "string") { + const trimmed = value.trim(); + if (/^\d{1,2}$/.test(trimmed)) { + const parsed = Number.parseInt(trimmed, 10); + if (parsed >= 1 && parsed <= 12) { + return parsed; + } + } + } + return null; +} + +function coerceTimeScope( + value: unknown, + rawText: string, + fallback: NormalizedFragmentV2["time_scope"] +): NormalizedFragmentV2["time_scope"] { + if (value && typeof value === "object") { + const source = value as Record; + const rawType = normalizeToken(source.type); + const confidence = coerceConfidence(source.confidence, fallback.confidence); + if (["explicit", "inferred", "missing"].includes(rawType)) { + if (rawType === "missing") { + return { + type: "missing", + value: null, + confidence + }; + } + return { + type: rawType as NormalizedFragmentV2["time_scope"]["type"], + value: toOptionalString(source.value), + confidence + }; + } + + const periodType = normalizeToken(source.period_type); + const year = parseYear(source.year); + const month = parseMonth(source.month); + if ((periodType === "year" || (periodType.length === 0 && year !== null)) && year !== null) { + return { + type: "explicit", + value: String(year), + confidence: confidence === "low" ? "medium" : confidence + }; + } + if ((periodType === "month" || periodType === "year_month" || (year !== null && month !== null)) && year !== null && month !== null) { + return { + type: "explicit", + value: `${year}-${String(month).padStart(2, "0")}`, + confidence: confidence === "low" ? "medium" : confidence + }; + } + } + + const inferred = inferTimeScope(rawText); + if (inferred.type !== "missing") { + return inferred; + } + return fallback; +} + +function coerceFlags( + value: unknown, + fallback: NormalizedFragmentV2["flags"] +): NormalizedFragmentV2["flags"] { + if (!value || typeof value !== "object") { + return fallback; + } + const source = value as Record; + const pick = (key: keyof NormalizedFragmentV2["flags"], aliases: string[] = []): boolean => { + if (key in source) { + return coerceBoolean(source[key], fallback[key]); + } + for (const alias of aliases) { + if (alias in source) { + return coerceBoolean(source[alias], fallback[key]); + } + } + return fallback[key]; + }; + + return { + has_multi_entity_scope: pick("has_multi_entity_scope", ["multi_entity_scope"]), + asks_for_chain_explanation: pick("asks_for_chain_explanation", ["asks_for_chain", "chain_explanation"]), + asks_for_ranking_or_top: pick("asks_for_ranking_or_top", ["asks_for_ranking", "asks_for_top"]), + asks_for_period_summary: pick("asks_for_period_summary", ["period_summary"]), + asks_for_rule_check: pick("asks_for_rule_check", ["rule_check"]), + asks_for_anomaly_scan: pick("asks_for_anomaly_scan", ["anomaly_scan"]), + asks_for_exact_object_trace: pick("asks_for_exact_object_trace", ["exact_object_trace"]), + asks_for_evidence: pick("asks_for_evidence", ["evidence"]), + mentions_period_close_context: pick("mentions_period_close_context", ["period_close_context"]) + }; +} + +function mapCandidateLabel(value: string): NormalizedFragmentV2["candidate_labels"][number] | null { + const token = normalizeToken(value); + if (CANDIDATE_LABEL_VALUES.includes(token as NormalizedFragmentV2["candidate_labels"][number])) { + return token as NormalizedFragmentV2["candidate_labels"][number]; + } + if (["show_documents", "document_list", "show_docs", "point_answer", "lookup"].includes(token)) { + return "simple_factual"; + } + if (["ranking", "top", "summary", "analytical"].includes(token)) { + return "heavy_analytical"; + } + if (["chain", "cross", "cross_domain"].includes(token)) { + return "cross_entity"; + } + if (["rule_check", "control", "rules"].includes(token)) { + return "rule_based_account_control"; + } + if (["risk_scan", "anomaly", "risk"].includes(token)) { + return "anomaly_probe"; + } + if (["period_close", "month_close"].includes(token)) { + return "period_close_risk"; + } + if (["ambiguous", "unclear"].includes(token)) { + return "ambiguous_human_query"; + } + return null; +} + +function coerceCandidateLabels( + value: unknown, + flags: NormalizedFragmentV2["flags"], + domainRelevance: NormalizedFragmentV2["domain_relevance"], + fallback: NormalizedFragmentV2["candidate_labels"] +): NormalizedFragmentV2["candidate_labels"] { + const parsed = coerceStringArray(value) + .map((item) => mapCandidateLabel(item)) + .filter((item): item is NormalizedFragmentV2["candidate_labels"][number] => Boolean(item)); + if (parsed.length > 0) { + return Array.from(new Set(parsed)); + } + const inferred = pickCandidateLabels(flags, domainRelevance); + if (inferred.length > 0) { + return inferred; + } + return fallback; +} + +function coerceFragmentV2(rawFragment: unknown, index: number, userMessage: string): NormalizedFragmentV2 | null { + const source = rawFragment && typeof rawFragment === "object" ? (rawFragment as Record) : {}; + const rawText = + toOptionalString(source.raw_fragment_text) ?? + toOptionalString(source.rawText) ?? + toOptionalString(source.fragment_text) ?? + toOptionalString(source.text) ?? + userMessage.trim(); + const base = buildFragmentV2(rawText, index) ?? buildFragmentV2(userMessage, index); + if (!base) { + return null; + } + + const domainRelevance = coerceDomainRelevance(source.domain_relevance, base.domain_relevance); + const businessScope = coerceBusinessScope(source.business_scope, base.business_scope, domainRelevance); + const flags = coerceFlags(source.flags, base.flags); + + const entityHints = coerceStringArray(source.entity_hints); + const accountHints = coerceStringArray(source.account_hints); + const documentHints = coerceStringArray(source.document_hints); + const registerHints = coerceStringArray(source.register_hints); + + return { + fragment_id: coerceFragmentId(source.fragment_id, index, base.fragment_id), + raw_fragment_text: rawText, + normalized_fragment_text: toOptionalString(source.normalized_fragment_text) ?? base.normalized_fragment_text, + domain_relevance: domainRelevance, + business_scope: businessScope, + entity_hints: entityHints.length > 0 ? entityHints : base.entity_hints, + account_hints: accountHints.length > 0 ? accountHints : base.account_hints, + document_hints: documentHints.length > 0 ? documentHints : base.document_hints, + register_hints: registerHints.length > 0 ? registerHints : base.register_hints, + time_scope: coerceTimeScope(source.time_scope, rawText, base.time_scope), + flags, + candidate_labels: coerceCandidateLabels(source.candidate_labels, flags, domainRelevance, base.candidate_labels), + confidence: coerceConfidence(source.confidence, base.confidence) + }; +} + +function coerceDiscardedFragments(value: unknown): DiscardedFragmentV2[] { + if (!Array.isArray(value)) { + return []; + } + const collected: DiscardedFragmentV2[] = []; + for (const item of value) { + if (!item || typeof item !== "object") { + continue; + } + const source = item as Record; + const raw = toOptionalString(source.raw_fragment_text); + const reason = toOptionalString(source.reason); + if (!raw || !reason) { + continue; + } + collected.push({ + raw_fragment_text: raw, + reason + }); + } + return collected; +} + +function coerceScopeConfidence( + value: unknown, + fallback: NormalizedQueryV2["scope_confidence"] +): NormalizedQueryV2["scope_confidence"] { + return coerceConfidence(value, fallback); +} + +function coerceGlobalNotes( + value: unknown, + fallbackNeedsClarification: boolean +): NormalizedQueryV2["global_notes"] { + if (!value || typeof value !== "object") { + return { + needs_clarification: fallbackNeedsClarification, + clarification_reason: fallbackNeedsClarification ? "clarification_required" : null + }; + } + const source = value as Record; + const needs = coerceBoolean(source.needs_clarification, fallbackNeedsClarification); + const clarificationReason = toOptionalString(source.clarification_reason); + return { + needs_clarification: needs, + clarification_reason: needs ? clarificationReason ?? "clarification_required" : null + }; +} + +function coerceNormalizedCandidateV2(candidate: unknown, userMessage: string): NormalizedQueryV2 | null { + if (!candidate || typeof candidate !== "object") { + return null; + } + const source = candidate as Record; + const sourceFragments = Array.isArray(source.fragments) + ? source.fragments + : source.fragment && typeof source.fragment === "object" + ? [source.fragment] + : splitIntoCandidateFragments(userMessage).map((text) => ({ raw_fragment_text: text })); + + const fragments = sourceFragments + .map((item, index) => coerceFragmentV2(item, index, userMessage)) + .filter((item): item is NormalizedFragmentV2 => item !== null); + + const inScopeCount = fragments.filter((item) => item.domain_relevance === "in_scope").length; + const unclearCount = fragments.filter((item) => item.domain_relevance === "unclear").length; + const messageInScope = inScopeCount > 0; + const inferredScopeConfidence: NormalizedQueryV2["scope_confidence"] = messageInScope ? (unclearCount > 0 ? "medium" : "high") : "low"; + const inferredNeedsClarification = messageInScope && (unclearCount > 0 || fragments.some((item) => item.time_scope.type === "missing")); + + return { + schema_version: "normalized_query_v2", + user_message_raw: toOptionalString(source.user_message_raw) ?? userMessage, + message_in_scope: coerceBoolean(source.message_in_scope, messageInScope), + scope_confidence: coerceScopeConfidence(source.scope_confidence, inferredScopeConfidence), + contains_multiple_tasks: coerceBoolean(source.contains_multiple_tasks, fragments.length > 1), + fragments, + discarded_fragments: coerceDiscardedFragments(source.discarded_fragments), + global_notes: coerceGlobalNotes(source.global_notes, inferredNeedsClarification) + }; +} + function collectDateSpans(text: string): Array<{ start: number; end: number }> { const spans: Array<{ start: number; end: number }> = []; const patterns = [ @@ -1099,6 +1541,7 @@ export class NormalizerService { try { normalizedCandidate = safeJsonParse(outputText); if (schemaVersion !== "v1") { + normalizedCandidate = coerceNormalizedCandidateV2(normalizedCandidate, payload.userQuestion) ?? normalizedCandidate; normalizedCandidate = applyCompanyScopeResolutionV2(normalizedCandidate, payload.userQuestion, payload.context); } if (schemaVersion === "v2_0_2") { @@ -1150,6 +1593,7 @@ export class NormalizerService { try { normalizedCandidate = safeJsonParse(outputText); if (schemaVersion !== "v1") { + normalizedCandidate = coerceNormalizedCandidateV2(normalizedCandidate, payload.userQuestion) ?? normalizedCandidate; normalizedCandidate = applyCompanyScopeResolutionV2(normalizedCandidate, payload.userQuestion, payload.context); } if (schemaVersion === "v2_0_2") { diff --git a/llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts b/llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts index 6ce7821..d426f93 100644 --- a/llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts +++ b/llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts @@ -5,6 +5,7 @@ import { classifyAddressQueryShape } from "../src/services/addressQueryShapeClas import { extractAddressFilters } from "../src/services/addressFilterExtractor"; import { AddressQueryService } from "../src/services/addressQueryService"; import { buildAddressRecipePlan, selectAddressRecipe } from "../src/services/addressRecipeCatalog"; +import { runAddressDecomposeStage } from "../src/services/address_runtime/decomposeStage"; describe("address query shape classifier", () => { it("classifies explain question as deep-shape", () => { @@ -225,6 +226,56 @@ describe("address filter extraction for balance drilldown", () => { expect(result.extracted_filters.counterparty).not.toBe("плс"); }); + it("extracts short ordinal year period from noisy docs phrase", () => { + const result = extractAddressFilters( + "бля епт покажи доки по свк за 20-й", + "list_documents_by_counterparty" + ); + expect(result.extracted_filters.counterparty).toBe("свк"); + expect(result.extracted_filters.period_from).toBe("2020-01-01"); + expect(result.extracted_filters.period_to).toBe("2020-12-31"); + expect(result.warnings).toContain("period_derived_from_year_phrase"); + }); + + it("does not use action verb as counterparty when phrase is 'Показать документы '", () => { + const result = extractAddressFilters( + "Показать документы СВК за 2020 год.", + "list_documents_by_counterparty" + ); + expect(result.extracted_filters.counterparty).toBe("СВК"); + expect(result.extracted_filters.counterparty).not.toBe("Показать"); + expect(result.extracted_filters.period_from).toBe("2020-01-01"); + expect(result.extracted_filters.period_to).toBe("2020-12-31"); + }); + + it("extracts counterparty and short year from transliterated noisy phrase", () => { + const result = extractAddressFilters( + "svk doki za 20 god pokezh", + "list_documents_by_counterparty" + ); + expect(result.extracted_filters.counterparty).toBe("svk"); + expect(result.extracted_filters.period_from).toBe("2020-01-01"); + expect(result.extracted_filters.period_to).toBe("2020-12-31"); + expect( + result.warnings.some( + (warning) => + warning === "counterparty_anchor_derived_from_free_text_heuristic" || + warning === "counterparty_anchor_derived_from_implicit_phrase" + ) + ).toBe(true); + expect(result.warnings).toContain("period_derived_from_year_phrase"); + }); + + it("repairs mojibake phrase before extracting counterparty filters", () => { + const result = extractAddressFilters( + "Показать документы РЎР’Рљ Р·Р° 2020 РіРѕРґ.", + "list_documents_by_counterparty" + ); + expect(result.extracted_filters.counterparty).toBe("СВК"); + expect(result.extracted_filters.period_from).toBe("2020-01-01"); + expect(result.extracted_filters.period_to).toBe("2020-12-31"); + }); + it("extracts explicit year range period from phrase", () => { const result = extractAddressFilters( "Какие документы по СВК за 2000 - 2025 год?", @@ -372,6 +423,46 @@ describe("address query limited taxonomy and stage diagnostics", () => { }); }); +describe("address decompose stage follow-up carryover", () => { + it("keeps short period follow-up in address lane and preserves previous counterparty anchor", () => { + const result = runAddressDecomposeStage("а теперь только за май 2020", { + previous_intent: "list_documents_by_counterparty", + previous_filters: { + counterparty: "свк", + period_from: "2020-01-01", + period_to: "2020-12-31" + }, + previous_anchor_type: "counterparty", + previous_anchor_value: "Группа СВК" + }); + expect(result).not.toBeNull(); + expect(result?.intent.intent).toBe("list_documents_by_counterparty"); + expect(result?.filters.extracted_filters.counterparty).toBe("свк"); + expect(result?.filters.extracted_filters.period_from).toBe("2020-05-01"); + expect(result?.filters.extracted_filters.period_to).toBe("2020-05-31"); + expect(result?.baseReasons).toContain("address_followup_context_applied"); + }); + + it("inherits as_of_date from previous period for same-date balance follow-up", () => { + const result = runAddressDecomposeStage("а по счету 60.01 на ту же дату", { + previous_intent: "list_documents_by_counterparty", + previous_filters: { + counterparty: "свк", + period_from: "2020-05-01", + period_to: "2020-05-31" + }, + previous_anchor_type: "counterparty", + previous_anchor_value: "Группа СВК" + }); + expect(result).not.toBeNull(); + expect(result?.intent.intent).toBe("account_balance_snapshot"); + expect(result?.filters.extracted_filters.account).toBe("60.01"); + expect(result?.filters.extracted_filters.as_of_date).toBe("2020-05-31"); + expect(result?.baseReasons).toContain("as_of_date_from_followup_context"); + expect(result?.baseReasons).toContain("address_followup_context_applied"); + }); +}); + describe("address recipe catalog counterparty filtering", () => { it("boosts limit for all-time counterparty queries", () => { const filters = extractAddressFilters( diff --git a/llm_normalizer/backend/tests/assistantAddressFollowupContext.test.ts b/llm_normalizer/backend/tests/assistantAddressFollowupContext.test.ts index 1debb71..dc53507 100644 --- a/llm_normalizer/backend/tests/assistantAddressFollowupContext.test.ts +++ b/llm_normalizer/backend/tests/assistantAddressFollowupContext.test.ts @@ -120,15 +120,13 @@ describe("assistant address follow-up carryover", () => { expect(second.debug?.extracted_filters?.counterparty).toBe("свк"); expect(second.debug?.answer_grounding_check?.reasons).toContain("address_followup_context_applied"); - expect(calls).toHaveLength(3); + expect(calls).toHaveLength(2); expect(calls[0].message).toBe("какие есть доки по свк с 2020 по 2025 год"); expect(calls[1].message).toBe("а за все время?"); - expect(calls[1].options?.followupContext).toBeUndefined(); - expect(calls[2].message).toBe("а за все время?"); - expect(calls[2].options?.followupContext?.previous_intent).toBe("list_documents_by_counterparty"); - expect(calls[2].options?.followupContext?.previous_anchor_type).toBe("counterparty"); - expect(calls[2].options?.followupContext?.previous_anchor_value).toBe("Группа СВК"); - expect(calls[2].options?.followupContext?.previous_filters?.counterparty).toBe("свк"); + expect(calls[1].options?.followupContext?.previous_intent).toBe("list_documents_by_counterparty"); + expect(calls[1].options?.followupContext?.previous_anchor_type).toBe("counterparty"); + expect(calls[1].options?.followupContext?.previous_anchor_value).toBe("Группа СВК"); + expect(calls[1].options?.followupContext?.previous_filters?.counterparty).toBe("свк"); expect(normalizerService.normalize).not.toHaveBeenCalled(); }); }); diff --git a/llm_normalizer/backend/tests/assistantAddressLlmPredecompose.test.ts b/llm_normalizer/backend/tests/assistantAddressLlmPredecompose.test.ts new file mode 100644 index 0000000..40d7a57 --- /dev/null +++ b/llm_normalizer/backend/tests/assistantAddressLlmPredecompose.test.ts @@ -0,0 +1,156 @@ +import { describe, expect, it, vi } from "vitest"; +import { AssistantService } from "../src/services/assistantService"; +import { AssistantSessionStore } from "../src/services/assistantSessionStore"; + +function buildAddressLaneResult(message: string): any { + return { + handled: true, + reply_text: `handled: ${message}`, + reply_type: "factual", + response_type: "FACTUAL_LIST", + debug: { + detected_mode: "address_query", + detected_mode_confidence: "high", + query_shape: "DOCUMENT_LIST", + query_shape_confidence: "medium", + detected_intent: "list_documents_by_counterparty", + detected_intent_confidence: "medium", + extracted_filters: { + sort: "period_desc", + limit: 20, + counterparty: "svk", + period_from: "2020-01-01", + period_to: "2020-12-31" + }, + missing_required_filters: [], + selected_recipe: "address_documents_by_counterparty_v1", + mcp_call_status_legacy: "matched_non_empty", + account_scope_mode: "preferred", + account_scope_fallback_applied: false, + anchor_type: "counterparty", + anchor_value_raw: "svk", + anchor_value_resolved: "Группа СВК", + resolver_confidence: "medium", + ambiguity_count: 0, + match_failure_stage: "none", + match_failure_reason: null, + mcp_call_status: "matched_non_empty", + rows_fetched: 20, + raw_rows_received: 20, + rows_after_account_scope: 5, + rows_after_recipe_filter: 3, + rows_materialized: 5, + rows_matched: 3, + raw_row_keys_sample: [], + materialization_drop_reason: "none", + account_token_raw: null, + account_token_normalized: null, + account_scope_fields_checked: ["account_dt", "account_kt", "registrator", "analytics"], + account_scope_match_strategy: "account_code_regex_plus_alias_map_v1", + account_scope_drop_reason: "not_applicable", + runtime_readiness: "LIVE_QUERYABLE_WITH_LIMITS", + limited_reason_category: null, + response_type: "FACTUAL_LIST", + limitations: [], + reasons: ["address_action_detected", "address_entity_detected", "document_list_signal_detected"] + } + }; +} + +describe("assistant address llm pre-decompose candidate preference", () => { + it("prefers raw fragment when normalized fragment loses counterparty anchor", async () => { + const calls: Array<{ message: string }> = []; + const addressQueryService = { + tryHandle: vi.fn(async (message: string) => { + calls.push({ message }); + return buildAddressLaneResult(message); + }) + } as any; + + const normalizerService = { + normalize: vi.fn(async () => ({ + trace_id: "norm-predecompose-1", + ok: true, + normalized: { + schema_version: "normalized_query_v2_0_2", + user_message_raw: "бля svk doki za 20 god pokezh pls", + message_in_scope: true, + scope_confidence: "medium", + contains_multiple_tasks: false, + fragments: [ + { + fragment_id: "F1", + raw_fragment_text: "svk doki za 20 god pokezh", + normalized_fragment_text: "Показать документы за 2020 год", + domain_relevance: "in_scope", + business_scope: "company_specific_accounting", + entity_hints: [], + account_hints: [], + document_hints: ["документы"], + register_hints: [], + time_scope: { + type: "explicit", + value: "2020", + confidence: "high" + }, + flags: { + has_multi_entity_scope: false, + asks_for_chain_explanation: false, + asks_for_ranking_or_top: false, + asks_for_period_summary: false, + asks_for_rule_check: false, + asks_for_anomaly_scan: false, + asks_for_exact_object_trace: false, + asks_for_evidence: false, + mentions_period_close_context: false + }, + candidate_labels: ["simple_factual"], + confidence: "medium", + execution_readiness: "executable", + clarification_reason: null, + soft_assumption_used: [], + route_status: "routed", + no_route_reason: null + } + ], + discarded_fragments: [], + global_notes: { + needs_clarification: false, + clarification_reason: null + } + }, + raw_model_output: null, + validation: { passed: true, errors: [] }, + usage: { input_tokens: 1, output_tokens: 1, total_tokens: 2 }, + latency_ms: 10, + prompt_version: "normalizer_v2_0_2", + schema_version: "v2_0_2", + request_count_for_case: 1 + })) + } as any; + + const sessions = new AssistantSessionStore(); + const service = new AssistantService( + normalizerService, + sessions as any, + {} as any, + { persistSession: vi.fn() } as any, + addressQueryService + ); + + const response = await service.handleMessage({ + session_id: `asst-predecompose-${Date.now()}`, + user_message: "бля svk doki za 20 god pokezh pls", + llmProvider: "local", + useMock: false + } as any); + + expect(response.ok).toBe(true); + expect(response.reply_type).toBe("factual"); + expect(calls).toHaveLength(1); + expect(calls[0].message).toBe("svk doki za 20 god pokezh"); + expect(response.debug?.llm_decomposition_attempted).toBe(true); + expect(response.debug?.llm_decomposition_applied).toBe(true); + expect(response.debug?.llm_decomposition_effective_message).toBe("svk doki za 20 god pokezh"); + }); +}); diff --git a/llm_normalizer/backend/tests/normalizerServiceCoercion.test.ts b/llm_normalizer/backend/tests/normalizerServiceCoercion.test.ts new file mode 100644 index 0000000..69d53f3 --- /dev/null +++ b/llm_normalizer/backend/tests/normalizerServiceCoercion.test.ts @@ -0,0 +1,140 @@ +import { describe, expect, it, vi } from "vitest"; +import { NormalizerService } from "../src/services/normalizerService"; +import type { OpenAIResponsesClient } from "../src/services/openaiResponsesClient"; +import type { NormalizedQueryV2_0_2 } from "../src/types/normalizer"; + +function makeService(outputText: string) { + const normalizeMock = vi.fn().mockResolvedValue({ + raw: { mode: "stubbed" }, + outputText, + usage: { + input_tokens: 11, + output_tokens: 22, + total_tokens: 33 + } + }); + const openaiClient = { + normalize: normalizeMock + } as unknown as OpenAIResponsesClient; + return { + service: new NormalizerService(openaiClient), + normalizeMock + }; +} + +describe("NormalizerService coercion layer", () => { + it("coerces malformed v2.0.2 local payload into a usable routed fragment", async () => { + const malformed = { + schema_version: "normalized_query_v2_0_2", + global_notes: { + needs_clarification: true, + clarification_reason: "insufficient_specificity" + }, + fragments: [ + { + fragment_id: 1, + raw_fragment_text: "свк доки за 20год покеж", + normalized_fragment_text: "показать документы за 20 год", + domain_relevance: true, + business_scope: "document_review", + entity_hints: [], + account_hints: [], + document_hints: ["документы"], + register_hints: [], + time_scope: { + period_type: "year", + year: 2020, + month: null + }, + flags: {}, + candidate_labels: ["show_documents"], + confidence: 0.85, + execution_readiness: "needs_clarification", + clarification_reason: "insufficient_specificity", + soft_assumption_used: [], + route_status: "no_route", + no_route_reason: "insufficient_specificity" + } + ] + }; + + const { service, normalizeMock } = makeService(JSON.stringify(malformed)); + + const response = await service.normalize({ + llmProvider: "local", + model: "qwen2.5-14b-instruct-1m", + baseUrl: "http://127.0.0.1:1234/v1", + promptVersion: "normalizer_v2_0_2", + userQuestion: "свк доки за 20год покеж", + retryPolicy: "single-pass-strict" + }); + + expect(normalizeMock).toHaveBeenCalledTimes(1); + expect(response.ok).toBe(true); + expect(response.normalized?.schema_version).toBe("normalized_query_v2_0_2"); + + const normalized = response.normalized as NormalizedQueryV2_0_2; + expect(normalized.fragments).toHaveLength(1); + expect(normalized.fragments[0]).toMatchObject({ + fragment_id: "F1", + domain_relevance: "in_scope", + business_scope: "company_specific_accounting", + confidence: "high", + route_status: "routed", + no_route_reason: null + }); + expect(normalized.fragments[0].candidate_labels).toContain("simple_factual"); + expect(normalized.fragments[0].time_scope).toMatchObject({ + type: "explicit", + value: "2020" + }); + }); + + it("coerces period_type month payload into explicit YYYY-MM time scope", async () => { + const malformed = { + schema_version: "normalized_query_v2_0_2", + fragments: [ + { + fragment_id: "frag_main", + raw_fragment_text: "Какой остаток по счету 60 на 2020 май", + normalized_fragment_text: "остаток по счету 60 на май 2020", + domain_relevance: "in_scope", + business_scope: "company_specific_accounting", + entity_hints: ["счет"], + account_hints: ["60"], + document_hints: [], + register_hints: ["остаток"], + time_scope: { + period_type: "month", + year: 2020, + month: 5 + }, + flags: { + asks_for_period_summary: false + }, + candidate_labels: ["simple_factual"], + confidence: 0.67 + } + ] + }; + + const { service } = makeService(JSON.stringify(malformed)); + const response = await service.normalize({ + llmProvider: "local", + model: "qwen2.5-14b-instruct-1m", + baseUrl: "http://127.0.0.1:1234/v1", + promptVersion: "normalizer_v2_0_2", + userQuestion: "Какой остаток по счету 60 на 2020 май", + retryPolicy: "single-pass-strict" + }); + + expect(response.ok).toBe(true); + const normalized = response.normalized as NormalizedQueryV2_0_2; + expect(normalized.fragments).toHaveLength(1); + expect(normalized.fragments[0].time_scope).toMatchObject({ + type: "explicit", + value: "2020-05" + }); + expect(normalized.fragments[0].route_status).toBe("routed"); + }); +}); diff --git a/llm_normalizer/data/eval_cases/eval-DWKHVXNpX0.report.json b/llm_normalizer/data/eval_cases/eval-DWKHVXNpX0.report.json new file mode 100644 index 0000000..063a810 --- /dev/null +++ b/llm_normalizer/data/eval_cases/eval-DWKHVXNpX0.report.json @@ -0,0 +1,112 @@ +{ + "run_id": "eval-DWKHVXNpX0", + "timestamp": "2026-04-01T17:58:37.894Z", + "mode": "single-pass-strict", + "use_mock": true, + "prompt_version": "normalizer_v2_0_2", + "schema_version": "v2_0_2", + "dataset": { + "source": "inline_raw_questions", + "file": null, + "raw_questions_count": 2 + }, + "cases_total": 2, + "metrics": { + "schema_validation_pass_rate": 100, + "scope_detection_accuracy": null, + "scope_in_scope_rate": 100, + "multi_intent_detected_rate": 0, + "clarification_required_rate": 0, + "avg_fragments_per_message": 1, + "out_of_scope_fragment_rate": 0, + "routed_fragment_rate": 100, + "no_route_fragment_rate": 0, + "route_resolution_accuracy": null, + "no_route_precision": null, + "false_no_route_rate": null, + "execution_state_consistency_rate": 100, + "executable_with_soft_assumptions_rate": 100, + "soft_assumption_used_fragment_rate": 100, + "clarification_precision": null, + "clarification_recall": null, + "false_clarification_rate": null + }, + "budget": { + "requests_total": 0, + "retries_used": 0 + }, + "clarification_eval": { + "labeled_cases": 0, + "true_positive": 0, + "false_positive": 0, + "false_negative": 0 + }, + "route_eval": { + "labeled_cases": 0, + "correct_cases": 0, + "expected_routed_cases": 0, + "no_route_true_positive": 0, + "no_route_false_positive": 0 + }, + "scope_eval": { + "labeled_cases": 0, + "correct_cases": 0 + }, + "execution_state_eval": { + "checks_total": 2, + "checks_passed": 2 + }, + "route_distribution": { + "store_feature_risk": 1, + "hybrid_store_plus_live": 1 + }, + "fallback_distribution": { + "none": 2 + }, + "results": [ + { + "case_id": "BQ-001", + "raw_question": "Проверь счет 60 за июнь 2020", + "validation_passed": true, + "message_in_scope": true, + "scope_confidence": "high", + "contains_multiple_tasks": false, + "fragments_total": 1, + "in_scope_fragments": 1, + "out_of_scope_fragments": 0, + "unclear_fragments": 0, + "fallback_type": "none", + "predicted_route_status": "routed", + "expected_route_status": null, + "predicted_no_route_reason": null, + "expected_no_route_reason": null, + "predicted_clarification_required": false, + "expected_clarification_required": null, + "executable_with_soft_assumptions_fragments": 1, + "trace_id": "2-IW0ZUOVi3nAC", + "request_count_for_case": 0 + }, + { + "case_id": "BQ-002", + "raw_question": "Покажи риски по НДС и по закрытию", + "validation_passed": true, + "message_in_scope": true, + "scope_confidence": "high", + "contains_multiple_tasks": false, + "fragments_total": 1, + "in_scope_fragments": 1, + "out_of_scope_fragments": 0, + "unclear_fragments": 0, + "fallback_type": "none", + "predicted_route_status": "routed", + "expected_route_status": null, + "predicted_no_route_reason": null, + "expected_no_route_reason": null, + "predicted_clarification_required": false, + "expected_clarification_required": null, + "executable_with_soft_assumptions_fragments": 1, + "trace_id": "-ExxUuN0Nm0_Tg", + "request_count_for_case": 0 + } + ] +} \ No newline at end of file diff --git a/llm_normalizer/data/eval_cases/eval-GhpxvKIQxt.report.json b/llm_normalizer/data/eval_cases/eval-GhpxvKIQxt.report.json new file mode 100644 index 0000000..329e813 --- /dev/null +++ b/llm_normalizer/data/eval_cases/eval-GhpxvKIQxt.report.json @@ -0,0 +1,137 @@ +{ + "run_id": "eval-GhpxvKIQxt", + "timestamp": "2026-04-01T17:58:21.798Z", + "mode": "single-pass-strict", + "use_mock": true, + "prompt_version": "normalizer_v2_0_2", + "schema_version": "v2_0_2", + "dataset": { + "source": "inline_raw_questions", + "file": null, + "raw_questions_count": 3 + }, + "cases_total": 3, + "metrics": { + "schema_validation_pass_rate": 100, + "scope_detection_accuracy": null, + "scope_in_scope_rate": 33.33, + "multi_intent_detected_rate": 0, + "clarification_required_rate": 0, + "avg_fragments_per_message": 1, + "out_of_scope_fragment_rate": 33.33, + "routed_fragment_rate": 66.67, + "no_route_fragment_rate": 33.33, + "route_resolution_accuracy": null, + "no_route_precision": null, + "false_no_route_rate": null, + "execution_state_consistency_rate": 66.67, + "executable_with_soft_assumptions_rate": 100, + "soft_assumption_used_fragment_rate": 100, + "clarification_precision": null, + "clarification_recall": null, + "false_clarification_rate": null + }, + "budget": { + "requests_total": 0, + "retries_used": 0 + }, + "clarification_eval": { + "labeled_cases": 0, + "true_positive": 0, + "false_positive": 0, + "false_negative": 0 + }, + "route_eval": { + "labeled_cases": 0, + "correct_cases": 0, + "expected_routed_cases": 0, + "no_route_true_positive": 0, + "no_route_false_positive": 0 + }, + "scope_eval": { + "labeled_cases": 0, + "correct_cases": 0 + }, + "execution_state_eval": { + "checks_total": 3, + "checks_passed": 2 + }, + "route_distribution": { + "hybrid_store_plus_live": 1, + "no_route": 1, + "batch_refresh_then_store": 1 + }, + "fallback_distribution": { + "none": 1, + "out_of_scope": 1, + "clarification": 1 + }, + "results": [ + { + "case_id": "BQ-001", + "raw_question": "Проверь хвосты по поставщикам и разложи цепочку", + "validation_passed": true, + "message_in_scope": true, + "scope_confidence": "high", + "contains_multiple_tasks": false, + "fragments_total": 1, + "in_scope_fragments": 1, + "out_of_scope_fragments": 0, + "unclear_fragments": 0, + "fallback_type": "none", + "predicted_route_status": "routed", + "expected_route_status": null, + "predicted_no_route_reason": null, + "expected_no_route_reason": null, + "predicted_clarification_required": false, + "expected_clarification_required": null, + "executable_with_soft_assumptions_fragments": 1, + "trace_id": "FfBBwmY0pgF-5v", + "request_count_for_case": 0 + }, + { + "case_id": "BQ-002", + "raw_question": "Как вообще по ФСБУ", + "validation_passed": true, + "message_in_scope": false, + "scope_confidence": "low", + "contains_multiple_tasks": false, + "fragments_total": 1, + "in_scope_fragments": 0, + "out_of_scope_fragments": 1, + "unclear_fragments": 0, + "fallback_type": "out_of_scope", + "predicted_route_status": "no_route", + "expected_route_status": null, + "predicted_no_route_reason": "out_of_scope", + "expected_no_route_reason": null, + "predicted_clarification_required": false, + "expected_clarification_required": null, + "executable_with_soft_assumptions_fragments": 0, + "trace_id": "hwga3Ew4syRBfn", + "request_count_for_case": 0 + }, + { + "case_id": "BQ-003", + "raw_question": "Покажи топ рисков за июнь 2020", + "validation_passed": true, + "message_in_scope": false, + "scope_confidence": "low", + "contains_multiple_tasks": false, + "fragments_total": 1, + "in_scope_fragments": 0, + "out_of_scope_fragments": 0, + "unclear_fragments": 1, + "fallback_type": "clarification", + "predicted_route_status": "routed", + "expected_route_status": null, + "predicted_no_route_reason": null, + "expected_no_route_reason": null, + "predicted_clarification_required": false, + "expected_clarification_required": null, + "executable_with_soft_assumptions_fragments": 0, + "trace_id": "0W5iyLskMcJHhE", + "request_count_for_case": 0 + } + ] +} \ No newline at end of file diff --git a/llm_normalizer/data/eval_cases/eval-j0kW0TZn8h.report.json b/llm_normalizer/data/eval_cases/eval-j0kW0TZn8h.report.json new file mode 100644 index 0000000..c624eb3 --- /dev/null +++ b/llm_normalizer/data/eval_cases/eval-j0kW0TZn8h.report.json @@ -0,0 +1,112 @@ +{ + "run_id": "eval-j0kW0TZn8h", + "timestamp": "2026-04-01T17:58:36.089Z", + "mode": "single-pass-strict", + "use_mock": true, + "prompt_version": "normalizer_v2_0_2", + "schema_version": "v2_0_2", + "dataset": { + "source": "inline_raw_questions", + "file": null, + "raw_questions_count": 2 + }, + "cases_total": 2, + "metrics": { + "schema_validation_pass_rate": 100, + "scope_detection_accuracy": null, + "scope_in_scope_rate": 100, + "multi_intent_detected_rate": 0, + "clarification_required_rate": 0, + "avg_fragments_per_message": 1, + "out_of_scope_fragment_rate": 0, + "routed_fragment_rate": 100, + "no_route_fragment_rate": 0, + "route_resolution_accuracy": null, + "no_route_precision": null, + "false_no_route_rate": null, + "execution_state_consistency_rate": 100, + "executable_with_soft_assumptions_rate": 100, + "soft_assumption_used_fragment_rate": 100, + "clarification_precision": null, + "clarification_recall": null, + "false_clarification_rate": null + }, + "budget": { + "requests_total": 0, + "retries_used": 0 + }, + "clarification_eval": { + "labeled_cases": 0, + "true_positive": 0, + "false_positive": 0, + "false_negative": 0 + }, + "route_eval": { + "labeled_cases": 0, + "correct_cases": 0, + "expected_routed_cases": 0, + "no_route_true_positive": 0, + "no_route_false_positive": 0 + }, + "scope_eval": { + "labeled_cases": 0, + "correct_cases": 0 + }, + "execution_state_eval": { + "checks_total": 2, + "checks_passed": 2 + }, + "route_distribution": { + "store_feature_risk": 1, + "hybrid_store_plus_live": 1 + }, + "fallback_distribution": { + "none": 2 + }, + "results": [ + { + "case_id": "BQ-001", + "raw_question": "Проверь счет 60 за июнь 2020", + "validation_passed": true, + "message_in_scope": true, + "scope_confidence": "high", + "contains_multiple_tasks": false, + "fragments_total": 1, + "in_scope_fragments": 1, + "out_of_scope_fragments": 0, + "unclear_fragments": 0, + "fallback_type": "none", + "predicted_route_status": "routed", + "expected_route_status": null, + "predicted_no_route_reason": null, + "expected_no_route_reason": null, + "predicted_clarification_required": false, + "expected_clarification_required": null, + "executable_with_soft_assumptions_fragments": 1, + "trace_id": "m6NBobhHYW-pb5", + "request_count_for_case": 0 + }, + { + "case_id": "BQ-002", + "raw_question": "Покажи риски по счету 97", + "validation_passed": true, + "message_in_scope": true, + "scope_confidence": "high", + "contains_multiple_tasks": false, + "fragments_total": 1, + "in_scope_fragments": 1, + "out_of_scope_fragments": 0, + "unclear_fragments": 0, + "fallback_type": "none", + "predicted_route_status": "routed", + "expected_route_status": null, + "predicted_no_route_reason": null, + "expected_no_route_reason": null, + "predicted_clarification_required": false, + "expected_clarification_required": null, + "executable_with_soft_assumptions_fragments": 1, + "trace_id": "Tg2cQfhfgMIZq-", + "request_count_for_case": 0 + } + ] +} \ No newline at end of file