Explorar el Código

toteat migration phase 1

Erwin Jacimino hace 2 días
padre
commit
9d84e8a141
Se han modificado 73 ficheros con 23337 adiciones y 358 borrados
  1. 15 0
      .claude/settings.json
  2. 11 1
      CLAUDE.md
  3. 1 1
      app.py
  4. 0 0
      graphify-out/.graphify_incremental.json
  5. 1 0
      graphify-out/.graphify_python
  6. 1 0
      graphify-out/.graphify_root
  7. 231 0
      graphify-out/GRAPH_REPORT.md
  8. 0 0
      graphify-out/cache/ast/0d3b01a5935ccde3e86dc8573bf9946f8ffd84ec11463d11b38d3a34a62fae15.json
  9. 0 0
      graphify-out/cache/ast/0e4b002f04881414e602a8dd370e919e2e3cb2468fe3983ff5345cdb345c0bcb.json
  10. 0 0
      graphify-out/cache/ast/0f28c072f008784e1fa754bde359ef9d21c40d108fd56a0515d6b71ac31700fe.json
  11. 1 0
      graphify-out/cache/ast/10fc5de564a684e8efdf3f6571788337efa33ef5dfba0b393597590e19d5795f.json
  12. 0 0
      graphify-out/cache/ast/14ca4b57501d95807965d543e656760b5dbdfd750d89f3889c0ef7a3612fd78a.json
  13. 0 0
      graphify-out/cache/ast/161e4fe814ab2208b1c7e66cc200179b62642113a972d3c37fa6b8f10a97a4e9.json
  14. 0 0
      graphify-out/cache/ast/180841a83e75e2cb6ff18dbc45439f0d811b3c96896db3c90d137ad30612f3da.json
  15. 0 0
      graphify-out/cache/ast/19ddfa3c4127b448dfafee4c2e8ac640647e8483b979d8749433fe6241fd72f5.json
  16. 0 0
      graphify-out/cache/ast/1afc4f25b0eb850dea91c8754918cb6189454750765b113687864564ca84c5ca.json
  17. 0 0
      graphify-out/cache/ast/25199633a9c4e49f9698d099461c5dfb59a9a5326f53988ce8b3f88064b126dc.json
  18. 0 0
      graphify-out/cache/ast/2795713512d315ad90304dde3da3f0e84311c6a81d19b8ee3ab32a89cf83049a.json
  19. 0 0
      graphify-out/cache/ast/2adc02c5604815260292b050a9cc0e55ea2b5e81efe82aa6a5ce60f7b8d7e225.json
  20. 0 0
      graphify-out/cache/ast/2be0e6ae006527a207d02d0d6260f7b02cfe7087aab9d591c040d93a16539a13.json
  21. 0 0
      graphify-out/cache/ast/357da85bda605578bb84720acc0639678743225ae95522b93d99dfa01a794327.json
  22. 1 0
      graphify-out/cache/ast/46138435db7799d072794d5132380cc1b403f1c6b58372fed8a14d2a2ef8be3f.json
  23. 0 0
      graphify-out/cache/ast/4619c816711c2d12a06a49fb323ef46e54cdd6049ae9f7da429239a3de372d8b.json
  24. 0 0
      graphify-out/cache/ast/48c48d21b48b1ccf2fbde623f4c63b7ad80c32308871f64905ae233d5ef48e47.json
  25. 0 0
      graphify-out/cache/ast/4f4a76c365241e6cdc99844c7b2a7b5394ebd6c9bcfc3cbed75c0aca3621e85a.json
  26. 0 0
      graphify-out/cache/ast/518cf922519de5c6e0451218a8bd7d88c1d8b6416e4183d6f07f8c2e75ae8659.json
  27. 0 0
      graphify-out/cache/ast/53f9e2b546eb0202248bed73cfedf77100f0ac36d2d058f05a89ceadf2de7f80.json
  28. 1 0
      graphify-out/cache/ast/541a8a8c5b523f337e79acf12523eca555a06400529d84b4fc5694bf979cee11.json
  29. 0 0
      graphify-out/cache/ast/5aa9277ff9be8d9cabb3207cc4c99c5e4045665efaa3009fd758c1f66b6fc1c6.json
  30. 0 0
      graphify-out/cache/ast/5ae5957b4d334e0d25433abe1ee1ef0f4d5d5f5d0175542b6133fa35b9d59178.json
  31. 0 0
      graphify-out/cache/ast/6088eaf8b29efc6a5091b9ee648b950c80e8114ae4c3ce12f98137c7812d0fd7.json
  32. 0 0
      graphify-out/cache/ast/6b97f1be235e6f0fef10f6269cbe93ea5c49cf3bc239a5f68b97c43fdc233d9c.json
  33. 0 0
      graphify-out/cache/ast/778791a9bcb44489fae5af56b43f79ce3156ddb20f6fe4de5d6d34bb0ddc54b2.json
  34. 1 0
      graphify-out/cache/ast/81e87aca484b0f97aec2a0f5916da1a464c2cf266f5e034a8b034bf5a2cf4c11.json
  35. 0 0
      graphify-out/cache/ast/8492deaa84457e3fa82775b88e0702e557e07b68036304f6b2a885d4e8d30c92.json
  36. 0 0
      graphify-out/cache/ast/85e955099d8d417ea13515098bf2cdbaa70469297ac8d397cc12ecf638f350cd.json
  37. 0 0
      graphify-out/cache/ast/883fc4102cefe7f2b25feb79842fd61404648761cff058f7b939f59e58f00692.json
  38. 1 0
      graphify-out/cache/ast/8d7db8e8569f7e0875704f543d4f47795a9b06110c0d7325a83e1601e8cd8ee5.json
  39. 0 0
      graphify-out/cache/ast/903047c3c4db5fe1ff276cdfd6cb00ed1833c1dc734c0bf7c81c991a2d39641c.json
  40. 0 0
      graphify-out/cache/ast/92dd6d59ae75d1e1254095b218c8b0f895da0bb1aea546b08eca5a5b57ecb018.json
  41. 1 0
      graphify-out/cache/ast/976cd53bc5cf3ed01dfc3c2ff781b38c18e8ceb433e02759b781d41e73ed0b53.json
  42. 0 0
      graphify-out/cache/ast/99281735fde0f5c4ebdb20a98053ea8a9a4cb7a0cd5b30c7695bd23d617f759f.json
  43. 1 0
      graphify-out/cache/ast/9f7abb79f7cb57973c3cc204f67534d300055ba5b728ed350052c78950c5a6bf.json
  44. 0 0
      graphify-out/cache/ast/a3b44c72702051cf9c3825039a8f7d410f770351dfded1899caba7d3c63e6ec4.json
  45. 0 0
      graphify-out/cache/ast/a5e92c05958f1e937ab414b5f63ee490da2ba4865d3fef178fa81486b460eb5a.json
  46. 1 0
      graphify-out/cache/ast/a5ef27a9423c633b01ad2ffc5f3af0550fc0e0817972543ab2768039b0a6cc86.json
  47. 0 0
      graphify-out/cache/ast/b0b6b9f507230c8eb6c6f44d15909e80724a82d80eec49b204ba8b1f8c7c6ed6.json
  48. 1 0
      graphify-out/cache/ast/b1cbf6442000f355bd07b2972bb0645ed40d43364b578e104b53d918121dbdfa.json
  49. 0 0
      graphify-out/cache/ast/b9f1b364f8b1c5ef5c15bff86a1faff2384438f802cad962643767e4b95f1233.json
  50. 0 0
      graphify-out/cache/ast/c8b0b22a4ef71ef2ac3509a0d5f41ba0cb5f68d20a2d7a71da6edf8f26636ab1.json
  51. 1 0
      graphify-out/cache/ast/d36b5087750b0a84d48f083a895dc3e344f782b564c4bdaf8c384f7fdb160279.json
  52. 0 0
      graphify-out/cache/ast/d50a5a965c5e5e652f61554e473ca4c1d1580208294554b5be42ecaa2e10fcd5.json
  53. 0 0
      graphify-out/cache/ast/d9fbdff5f2c2f7f5c0254b9b4ed11ccb8698dea8a63344b440c255925ac8273c.json
  54. 1 0
      graphify-out/cache/ast/dfd457e5b3e548d50e81a7b6621f02ccee5ebc9f70ac066cd5423dac52b522da.json
  55. 0 0
      graphify-out/cache/ast/eb8786cda3e37981ed0be2c044a58dcd71d99b1dd5efb85835891ba0a0bba0ed.json
  56. 1 0
      graphify-out/cache/ast/edfaeb909045bf4178e812a75e0581607544c4d2b92c4122e82c063a80946f90.json
  57. 1 0
      graphify-out/cache/ast/eec944e9a20926292c1bb27fc21b94d285b98e986a3a261e33ea26ff1918dd3e.json
  58. 0 0
      graphify-out/cache/ast/f0fcb2c66fa0288ad125b11da0c9217ee9e3662f129d4194123e9cb764308431.json
  59. 0 0
      graphify-out/cache/ast/f37a46779422bbf04da858dcdbcdc05884947c338079041be6bcfb83b1888707.json
  60. 66 0
      graphify-out/graph.html
  61. 22690 0
      graphify-out/graph.json
  62. 234 0
      graphify-out/manifest.json
  63. 1 0
      graphify-out/needs_update
  64. 1 1
      models/items.py
  65. 1 1
      models/sales.py
  66. 9 107
      routes/orders.py
  67. 18 24
      routes/products.py
  68. 1 1
      routes/store.py
  69. 0 2
      routes/users.py
  70. 29 29
      services/data_service.py
  71. 2 2
      services/fudo_service.py
  72. 0 176
      services/print_service.py
  73. 12 13
      toteat/toteat.py

+ 15 - 0
.claude/settings.json

@@ -0,0 +1,15 @@
+{
+  "hooks": {
+    "PreToolUse": [
+      {
+        "matcher": "Bash",
+        "hooks": [
+          {
+            "type": "command",
+            "command": "CMD=$(python3 -c \"import json,sys; d=json.load(sys.stdin); print(d.get('tool_input',d).get('command',''))\" 2>/dev/null || true); case \"$CMD\" in *grep*|*rg\\ *|*ripgrep*|*find\\ *|*fd\\ *|*ack\\ *|*ag\\ *)   [ -f graphify-out/graph.json ] &&   echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"additionalContext\":\"graphify: Knowledge graph exists. Read graphify-out/GRAPH_REPORT.md for god nodes and community structure before searching raw files.\"}}'   || true ;; esac"
+          }
+        ]
+      }
+    ]
+  }
+}

+ 11 - 1
CLAUDE.md

@@ -60,4 +60,14 @@ All settings loaded from `.env` via `config/settings.py` using Pydantic. `valida
 Use Spanish conventional commits: `tipo(ámbito): descripción` (see `.github/commit-instructions.md`)
 
 ## Database
-PostgreSQL connection config in `config/settings.py:POSTGRESQL_DB_CONFIG`. Redis DB 0 for production, DB 1 for development (clears `connected_users` and `chat_history` on startup).
+PostgreSQL connection config in `config/settings.py:POSTGRESQL_DB_CONFIG`. Redis DB 0 for production, DB 1 for development (clears `connected_users` and `chat_history` on startup).
+
+## graphify
+
+This project has a knowledge graph at graphify-out/ with god nodes, community structure, and cross-file relationships.
+
+Rules:
+- ALWAYS read graphify-out/GRAPH_REPORT.md before reading any source files, running grep/glob searches, or answering codebase questions. The graph is your primary map of the codebase.
+- IF graphify-out/wiki/index.md EXISTS, navigate it instead of reading raw files
+- For cross-module "how does X relate to Y" questions, prefer `graphify query "<question>"`, `graphify path "<A>" "<B>"`, or `graphify explain "<concept>"` over grep — these traverse the graph's EXTRACTED + INFERRED edges instead of scanning files
+- After modifying code, run `graphify update .` to keep the graph current (AST-only, no API cost).

+ 1 - 1
app.py

@@ -43,7 +43,7 @@ def create_app() -> FastAPI:
         logger.info("Adding CORS middleware")
         app.add_middleware(
             CORSMiddleware,
-            allow_origins=["https://admin.kleinexpress.store", "https://kleinexpress.store", "http://localhost:8000", "http://10.10.10.2:8000"],
+            allow_origins=["https://admin.kleinexpress.store", "https://kleinexpress.store", "http://localhost:8001", "http://10.10.10.2:8001"],
             allow_credentials=True,
             allow_methods=["*"],
             allow_headers=["*"],

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/.graphify_incremental.json


+ 1 - 0
graphify-out/.graphify_python

@@ -0,0 +1 @@
+/usr/bin/python3.13

+ 1 - 0
graphify-out/.graphify_root

@@ -0,0 +1 @@
+/home/superti/workspace/pedidos_express/pedidos_express_server

+ 231 - 0
graphify-out/GRAPH_REPORT.md

@@ -0,0 +1,231 @@
+# Graph Report - pedidos_express_server  (2026-05-08)
+
+## Corpus Check
+- 52 files · ~66,147 words
+- Verdict: corpus is large enough that graph structure adds value.
+
+## Summary
+- 854 nodes · 1442 edges · 57 communities (42 shown, 15 thin omitted)
+- Extraction: 91% EXTRACTED · 9% INFERRED · 0% AMBIGUOUS · INFERRED: 135 edges (avg confidence: 0.71)
+- Token cost: 0 input · 0 output
+
+## Graph Freshness
+- Built from commit: `a705140e`
+- Run `git rev-parse HEAD` and compare to check if the graph is stale.
+- Run `graphify update .` after code changes (no API cost).
+
+## Community Hubs (Navigation)
+- [[_COMMUNITY_Community 0|Community 0]]
+- [[_COMMUNITY_Community 1|Community 1]]
+- [[_COMMUNITY_Community 2|Community 2]]
+- [[_COMMUNITY_Community 3|Community 3]]
+- [[_COMMUNITY_Community 4|Community 4]]
+- [[_COMMUNITY_Community 5|Community 5]]
+- [[_COMMUNITY_Community 6|Community 6]]
+- [[_COMMUNITY_Community 7|Community 7]]
+- [[_COMMUNITY_Community 8|Community 8]]
+- [[_COMMUNITY_Community 9|Community 9]]
+- [[_COMMUNITY_Community 10|Community 10]]
+- [[_COMMUNITY_Community 11|Community 11]]
+- [[_COMMUNITY_Community 12|Community 12]]
+- [[_COMMUNITY_Community 13|Community 13]]
+- [[_COMMUNITY_Community 14|Community 14]]
+- [[_COMMUNITY_Community 15|Community 15]]
+- [[_COMMUNITY_Community 16|Community 16]]
+- [[_COMMUNITY_Community 17|Community 17]]
+- [[_COMMUNITY_Community 18|Community 18]]
+- [[_COMMUNITY_Community 19|Community 19]]
+- [[_COMMUNITY_Community 20|Community 20]]
+- [[_COMMUNITY_Community 21|Community 21]]
+- [[_COMMUNITY_Community 22|Community 22]]
+- [[_COMMUNITY_Community 23|Community 23]]
+- [[_COMMUNITY_Community 24|Community 24]]
+- [[_COMMUNITY_Community 25|Community 25]]
+- [[_COMMUNITY_Community 26|Community 26]]
+- [[_COMMUNITY_Community 27|Community 27]]
+- [[_COMMUNITY_Community 28|Community 28]]
+- [[_COMMUNITY_Community 29|Community 29]]
+- [[_COMMUNITY_Community 30|Community 30]]
+- [[_COMMUNITY_Community 31|Community 31]]
+- [[_COMMUNITY_Community 32|Community 32]]
+- [[_COMMUNITY_Community 33|Community 33]]
+- [[_COMMUNITY_Community 34|Community 34]]
+- [[_COMMUNITY_Community 35|Community 35]]
+- [[_COMMUNITY_Community 36|Community 36]]
+- [[_COMMUNITY_Community 37|Community 37]]
+- [[_COMMUNITY_Community 38|Community 38]]
+- [[_COMMUNITY_Community 41|Community 41]]
+- [[_COMMUNITY_Community 42|Community 42]]
+- [[_COMMUNITY_Community 43|Community 43]]
+- [[_COMMUNITY_Community 44|Community 44]]
+- [[_COMMUNITY_Community 45|Community 45]]
+- [[_COMMUNITY_Community 55|Community 55]]
+
+## God Nodes (most connected - your core abstractions)
+1. `success_response()` - 32 edges
+2. `ProductDataService` - 25 edges
+3. `SalesDataService` - 24 edges
+4. `Product` - 23 edges
+5. `UserDataService` - 22 edges
+6. `eb` - 22 edges
+7. `error_response()` - 20 edges
+8. `Le()` - 17 edges
+9. `EmailSender` - 16 edges
+10. `BlacklistDataService` - 16 edges
+
+## Surprising Connections (you probably didn't know these)
+- `main()` --calls--> `validate_config()`  [INFERRED]
+  main.py → config/settings.py
+- `main()` --calls--> `initialize_db()`  [INFERRED]
+  main.py → services/data_service.py
+- `get_table_items()` --calls--> `get_products_by_table()`  [INFERRED]
+  routes/products.py → services/fudo_service.py
+- `printer_order()` --calls--> `get_email_sender()`  [INFERRED]
+  routes/orders.py → services/email_service.py
+- `BaseDataService` --uses--> `User`  [INFERRED]
+  services/data_service.py → models/user.py
+
+## Communities (57 total, 15 thin omitted)
+
+### Community 0 - "Community 0"
+Cohesion: 0.05
+Nodes (64): generate_token(), Generate a JWT token for user authentication., apply_promo_price(), create_product(), delete_product(), edit_product(), get_free_beer(), get_product() (+56 more)
+
+### Community 1 - "Community 1"
+Cohesion: 0.05
+Nodes (44): BaseModel, ErrorResponse, Class to handle success messages in the response., Class to handle error messages in the response., Class to handle user-related messages in the response., SuccessResponse, UserResponse, ChatCompletionRequest (+36 more)
+
+### Community 2 - "Community 2"
+Cohesion: 0.04
+Nodes (31): a0, Ah, ai(), at, {basename:D,unstable_useTransitions:X}, Be, bv(), Ch (+23 more)
+
+### Community 3 - "Community 3"
+Cohesion: 0.05
+Nodes (16): ag, an, eg(), jg(), Kt(), ng, Ro, Rx() (+8 more)
+
+### Community 4 - "Community 4"
+Cohesion: 0.09
+Nodes (43): _auth_params(), _build_line(), clear_token(), create_item(), create_sale(), _discover_open_order_for_table(), _fetch_menu(), fetch_page() (+35 more)
+
+### Community 5 - "Community 5"
+Cohesion: 0.06
+Nodes (24): validate_config(), create_app(), Create and configure FastAPI application, Setup all application routes, setup_routes(), main(), testing Main application entry point, EmailSender (+16 more)
+
+### Community 6 - "Community 6"
+Cohesion: 0.06
+Nodes (27): authenticate_user(), create_access_token(), get_current_user(), hash_password(), Hash a password using bcrypt., Create a JWT access token., Authenticate a user by email and password., TokenData (+19 more)
+
+### Community 7 - "Community 7"
+Cohesion: 0.1
+Nodes (17): Sale model matching the database schema, Sale, Get product IDs for a specific sale, Get products for a specific sale with quantities, Get sales by table number, Update quantity of a product in a sale, Get quantity of a specific product in a sale, Delete a sale and its product relationships (+9 more)
+
+### Community 8 - "Community 8"
+Cohesion: 0.07
+Nodes (23): ABC, Blacklist, Blacklist model matching the database schema, BaseDataService, BlacklistDataService, DataServiceFactory, get_blacklist_service(), get_product_service() (+15 more)
+
+### Community 9 - "Community 9"
+Cohesion: 0.13
+Nodes (30): ab(), bb(), ci(), db(), Ds(), ev(), Fh(), fx() (+22 more)
+
+### Community 10 - "Community 10"
+Cohesion: 0.1
+Nodes (25): $, b, bh, By(), Dy(), F(), Gg(), Hy() (+17 more)
+
+### Community 11 - "Community 11"
+Cohesion: 0.09
+Nodes (14): User model matching the database schema, User, AppStateBody, Service for managing user data, Add a new user to the database, Get all users from the database, Get user data from the database, Login user by email and pin hash (+6 more)
+
+### Community 12 - "Community 12"
+Cohesion: 0.07
+Nodes (26): 1.1 Funciones definidas en `fudo/fudo.py`, 1.2 Uso por archivo, 1.3 Resumen por función, 1.4 Transformaciones notables, 1. Auditoría del uso de la API de Fudo, 2.1 Arquitectura, 2.2 Endpoints del servidor de impresión, 2.3 Validación de conectividad (+18 more)
+
+### Community 13 - "Community 13"
+Cohesion: 0.15
+Nodes (23): clear_token(), create_item(), create_sale(), fetch_page(), get_active_sale(), get_all_indexed_products(), get_all_products(), get_categories() (+15 more)
+
+### Community 14 - "Community 14"
+Cohesion: 0.11
+Nodes (12): Product, Product model matching the database schema, ProductDataService, Add a new product to the database, Get all products from the database, Search products by name, Get multiple products by their IDs, Process image for storage (+4 more)
+
+### Community 15 - "Community 15"
+Cohesion: 0.08
+Nodes (23): **1\. Prerrequisitos**, **2\. Instalación**, **3\. Variables de Entorno (.env)**, **4\. Ejecución**, **🔌 API Endpoints (Resumen)**, **Asistente de IA (Camilo Klein)**, **Biergarten Klein \- Sistema de Pedidos Express**, **🤖 Características Principales** (+15 more)
+
+### Community 16 - "Community 16"
+Cohesion: 0.13
+Nodes (22): av(), Co(), dh(), di(), Dx(), e0(), gh(), go() (+14 more)
+
+### Community 17 - "Community 17"
+Cohesion: 0.1
+Nodes (19): Architecture, code:bash (python main.py), code:bash (gunicorn -w 4 -k uvicorn.workers.UvicornWorker app:app --bin), code:bash (npm install), code:bash (pip install -r requirements.txt), Commands, Commit Convention, Configuration (+11 more)
+
+### Community 19 - "Community 19"
+Cohesion: 0.17
+Nodes (11): bg, cx(), dg, Fy(), jh(), ln(), Ms(), Nh() (+3 more)
+
+### Community 20 - "Community 20"
+Cohesion: 0.15
+Nodes (13): mount_main_static_files(), mount_register_static_files(), NoCacheStaticFiles, StaticFiles que agrega headers para evitar cache, Override para agregar headers de no-cache, Serve the main HTML file, Serve the register HTML file, Mount static files for the register page (+5 more)
+
+### Community 21 - "Community 21"
+Cohesion: 0.21
+Nodes (14): dv(), fv(), ks(), Le(), Mv(), ni(), qg(), Rv() (+6 more)
+
+### Community 22 - "Community 22"
+Cohesion: 0.22
+Nodes (13): ax(), bo(), ex(), Im(), Iy(), Lo(), lx(), nx() (+5 more)
+
+### Community 23 - "Community 23"
+Cohesion: 0.18
+Nodes (7): body, createGlobalLoader(), data, dv, formData, rut, showGlobalLoader()
+
+### Community 24 - "Community 24"
+Cohesion: 0.17
+Nodes (9): _h(), Ky(), My(), No(), Py, tg, th(), yh() (+1 more)
+
+### Community 25 - "Community 25"
+Cohesion: 0.29
+Nodes (10): Hv(), jv(), kv(), qv(), Uh(), Vv(), xo(), xv() (+2 more)
+
+### Community 26 - "Community 26"
+Cohesion: 0.22
+Nodes (8): cb(), hx(), Mx(), n0(), Ov(), ph(), ux(), wx()
+
+### Community 33 - "Community 33"
+Cohesion: 0.33
+Nodes (3): Update sale information (products should be updated via specific methods), Activate a product (set status to 1), Deactivate a product (set status to 0)
+
+### Community 34 - "Community 34"
+Cohesion: 0.5
+Nodes (3): Enum, Locations, Locations for the printer service
+
+### Community 35 - "Community 35"
+Cohesion: 0.4
+Nodes (3): initialize_db(), Load multiple products from a list of dictionaries, Create a new sale with products and quantities
+
+### Community 37 - "Community 37"
+Cohesion: 0.67
+Nodes (3): Valida el token manualmente para WebSocket ya que no usan HTTPBearer standard, validate_ws_token(), websocket_endpoint()
+
+## Knowledge Gaps
+- **230 isolated node(s):** `Create and configure FastAPI application`, `Setup all application routes`, `testing Main application entry point`, `Verifica qué productos de 'indexed_products' no existen en la DB local     y los`, `Locations for the printer service` (+225 more)
+  These have ≤1 connection - possible missing edges or undocumented components.
+- **15 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
+
+## Suggested Questions
+_Questions this graph is uniquely positioned to answer:_
+
+- **Why does `Product` connect `Community 14` to `Community 1`, `Community 4`, `Community 7`, `Community 8`, `Community 11`, `Community 13`?**
+  _High betweenness centrality (0.085) - this node is a cross-community bridge._
+- **Why does `printer_order()` connect `Community 1` to `Community 0`?**
+  _High betweenness centrality (0.061) - this node is a cross-community bridge._
+- **Why does `get_product()` connect `Community 4` to `Community 14`?**
+  _High betweenness centrality (0.045) - this node is a cross-community bridge._
+- **Are the 31 inferred relationships involving `success_response()` (e.g. with `get_products()` and `get_product()`) actually correct?**
+  _`success_response()` has 31 INFERRED edges - model-reasoned connections that need verification._
+- **Are the 5 inferred relationships involving `ProductDataService` (e.g. with `User` and `Product`) actually correct?**
+  _`ProductDataService` has 5 INFERRED edges - model-reasoned connections that need verification._
+- **Are the 4 inferred relationships involving `SalesDataService` (e.g. with `User` and `Product`) actually correct?**
+  _`SalesDataService` has 4 INFERRED edges - model-reasoned connections that need verification._
+- **Are the 20 inferred relationships involving `Product` (e.g. with `BaseDataService` and `UserDataService`) actually correct?**
+  _`Product` has 20 INFERRED edges - model-reasoned connections that need verification._

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/0d3b01a5935ccde3e86dc8573bf9946f8ffd84ec11463d11b38d3a34a62fae15.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/0e4b002f04881414e602a8dd370e919e2e3cb2468fe3983ff5345cdb345c0bcb.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/0f28c072f008784e1fa754bde359ef9d21c40d108fd56a0515d6b71ac31700fe.json


+ 1 - 0
graphify-out/cache/ast/10fc5de564a684e8efdf3f6571788337efa33ef5dfba0b393597590e19d5795f.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_agents_md", "label": "AGENTS.md", "file_type": "document", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/AGENTS.md", "source_location": "L1"}], "edges": [], "input_tokens": 0, "output_tokens": 0}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/14ca4b57501d95807965d543e656760b5dbdfd750d89f3889c0ef7a3612fd78a.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/161e4fe814ab2208b1c7e66cc200179b62642113a972d3c37fa6b8f10a97a4e9.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/180841a83e75e2cb6ff18dbc45439f0d811b3c96896db3c90d137ad30612f3da.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/19ddfa3c4127b448dfafee4c2e8ac640647e8483b979d8749433fe6241fd72f5.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/1afc4f25b0eb850dea91c8754918cb6189454750765b113687864564ca84c5ca.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/25199633a9c4e49f9698d099461c5dfb59a9a5326f53988ce8b3f88064b126dc.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/2795713512d315ad90304dde3da3f0e84311c6a81d19b8ee3ab32a89cf83049a.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/2adc02c5604815260292b050a9cc0e55ea2b5e81efe82aa6a5ce60f7b8d7e225.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/2be0e6ae006527a207d02d0d6260f7b02cfe7087aab9d591c040d93a16539a13.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/357da85bda605578bb84720acc0639678743225ae95522b93d99dfa01a794327.json


+ 1 - 0
graphify-out/cache/ast/46138435db7799d072794d5132380cc1b403f1c6b58372fed8a14d2a2ef8be3f.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_load_products_py", "label": "load_products.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/load_products.py", "source_location": "L1"}], "edges": [{"source": "home_superti_workspace_pedidos_express_pedidos_express_server_load_products_py", "target": "fudo_fudo", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/load_products.py", "source_location": "L1", "weight": 1.0}, {"source": "home_superti_workspace_pedidos_express_pedidos_express_server_load_products_py", "target": "rich", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/load_products.py", "source_location": "L2", "weight": 1.0}], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/4619c816711c2d12a06a49fb323ef46e54cdd6049ae9f7da429239a3de372d8b.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/48c48d21b48b1ccf2fbde623f4c63b7ad80c32308871f64905ae233d5ef48e47.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/4f4a76c365241e6cdc99844c7b2a7b5394ebd6c9bcfc3cbed75c0aca3621e85a.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/518cf922519de5c6e0451218a8bd7d88c1d8b6416e4183d6f07f8c2e75ae8659.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/53f9e2b546eb0202248bed73cfedf77100f0ac36d2d058f05a89ceadf2de7f80.json


+ 1 - 0
graphify-out/cache/ast/541a8a8c5b523f337e79acf12523eca555a06400529d84b4fc5694bf979cee11.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_config_mails_py", "label": "mails.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/config/mails.py", "source_location": "L1"}], "edges": [{"source": "home_superti_workspace_pedidos_express_pedidos_express_server_config_mails_py", "target": "config_settings", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/config/mails.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/5aa9277ff9be8d9cabb3207cc4c99c5e4045665efaa3009fd758c1f66b6fc1c6.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/5ae5957b4d334e0d25433abe1ee1ef0f4d5d5f5d0175542b6133fa35b9d59178.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/6088eaf8b29efc6a5091b9ee648b950c80e8114ae4c3ce12f98137c7812d0fd7.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/6b97f1be235e6f0fef10f6269cbe93ea5c49cf3bc239a5f68b97c43fdc233d9c.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/778791a9bcb44489fae5af56b43f79ce3156ddb20f6fe4de5d6d34bb0ddc54b2.json


+ 1 - 0
graphify-out/cache/ast/81e87aca484b0f97aec2a0f5916da1a464c2cf266f5e034a8b034bf5a2cf4c11.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_middleware_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/middleware/__init__.py", "source_location": "L1"}], "edges": [{"source": "home_superti_workspace_pedidos_express_pedidos_express_server_middleware_init_py", "target": "home_superti_workspace_pedidos_express_pedidos_express_server_middleware_no_cache_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/middleware/__init__.py", "source_location": "L4", "weight": 1.0}], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/8492deaa84457e3fa82775b88e0702e557e07b68036304f6b2a885d4e8d30c92.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/85e955099d8d417ea13515098bf2cdbaa70469297ac8d397cc12ecf638f350cd.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/883fc4102cefe7f2b25feb79842fd61404648761cff058f7b939f59e58f00692.json


+ 1 - 0
graphify-out/cache/ast/8d7db8e8569f7e0875704f543d4f47795a9b06110c0d7325a83e1601e8cd8ee5.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_config_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/config/__init__.py", "source_location": "L1"}], "edges": [], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/903047c3c4db5fe1ff276cdfd6cb00ed1833c1dc734c0bf7c81c991a2d39641c.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/92dd6d59ae75d1e1254095b218c8b0f895da0bb1aea546b08eca5a5b57ecb018.json


+ 1 - 0
graphify-out/cache/ast/976cd53bc5cf3ed01dfc3c2ff781b38c18e8ceb433e02759b781d41e73ed0b53.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_services_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/services/__init__.py", "source_location": "L1"}], "edges": [], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/99281735fde0f5c4ebdb20a98053ea8a9a4cb7a0cd5b30c7695bd23d617f759f.json


+ 1 - 0
graphify-out/cache/ast/9f7abb79f7cb57973c3cc204f67534d300055ba5b728ed350052c78950c5a6bf.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_fudo_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/fudo/__init__.py", "source_location": "L1"}], "edges": [], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/a3b44c72702051cf9c3825039a8f7d410f770351dfded1899caba7d3c63e6ec4.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/a5e92c05958f1e937ab414b5f63ee490da2ba4865d3fef178fa81486b460eb5a.json


+ 1 - 0
graphify-out/cache/ast/a5ef27a9423c633b01ad2ffc5f3af0550fc0e0817972543ab2768039b0a6cc86.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_routes_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/__init__.py", "source_location": "L1"}], "edges": [], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/b0b6b9f507230c8eb6c6f44d15909e80724a82d80eec49b204ba8b1f8c7c6ed6.json


+ 1 - 0
graphify-out/cache/ast/b1cbf6442000f355bd07b2972bb0645ed40d43364b578e104b53d918121dbdfa.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_auth_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/auth/__init__.py", "source_location": "L1"}], "edges": [], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/b9f1b364f8b1c5ef5c15bff86a1faff2384438f802cad962643767e4b95f1233.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/c8b0b22a4ef71ef2ac3509a0d5f41ba0cb5f68d20a2d7a71da6edf8f26636ab1.json


+ 1 - 0
graphify-out/cache/ast/d36b5087750b0a84d48f083a895dc3e344f782b564c4bdaf8c384f7fdb160279.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_toteat_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/toteat/__init__.py", "source_location": "L1"}], "edges": [], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/d50a5a965c5e5e652f61554e473ca4c1d1580208294554b5be42ecaa2e10fcd5.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/d9fbdff5f2c2f7f5c0254b9b4ed11ccb8698dea8a63344b440c255925ac8273c.json


+ 1 - 0
graphify-out/cache/ast/dfd457e5b3e548d50e81a7b6621f02ccee5ebc9f70ac066cd5423dac52b522da.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_data_product_category_py", "label": "product_category.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/data/product_category.py", "source_location": "L1"}], "edges": [{"source": "home_superti_workspace_pedidos_express_pedidos_express_server_data_product_category_py", "target": "enums_locations", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/data/product_category.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/eb8786cda3e37981ed0be2c044a58dcd71d99b1dd5efb85835891ba0a0bba0ed.json


+ 1 - 0
graphify-out/cache/ast/edfaeb909045bf4178e812a75e0581607544c4d2b92c4122e82c063a80946f90.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_tailwind_config_js", "label": "tailwind.config.js", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/tailwind.config.js", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
graphify-out/cache/ast/eec944e9a20926292c1bb27fc21b94d285b98e986a3a261e33ea26ff1918dd3e.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "home_superti_workspace_pedidos_express_pedidos_express_server_services_openai_service_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/home/superti/workspace/pedidos_express/pedidos_express_server/services/openai_service/__init__.py", "source_location": "L1"}], "edges": [], "raw_calls": []}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/f0fcb2c66fa0288ad125b11da0c9217ee9e3662f129d4194123e9cb764308431.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
graphify-out/cache/ast/f37a46779422bbf04da858dcdbcdc05884947c338079041be6bcfb83b1888707.json


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 66 - 0
graphify-out/graph.html


+ 22690 - 0
graphify-out/graph.json

@@ -0,0 +1,22690 @@
+{
+  "directed": false,
+  "multigraph": false,
+  "graph": {},
+  "nodes": [
+    {
+      "label": "tailwind.config.js",
+      "file_type": "code",
+      "source_file": "tailwind.config.js",
+      "source_location": "L1",
+      "id": "tailwind_config_js",
+      "community": 39,
+      "norm_label": "tailwind.config.js"
+    },
+    {
+      "label": "app.py",
+      "file_type": "code",
+      "source_file": "app.py",
+      "source_location": "L1",
+      "id": "app_py",
+      "community": 5,
+      "norm_label": "app.py"
+    },
+    {
+      "label": "create_app()",
+      "file_type": "code",
+      "source_file": "app.py",
+      "source_location": "L16",
+      "id": "pedidos_express_server_app_create_app",
+      "community": 5,
+      "norm_label": "create_app()"
+    },
+    {
+      "label": "setup_routes()",
+      "file_type": "code",
+      "source_file": "app.py",
+      "source_location": "L86",
+      "id": "pedidos_express_server_app_setup_routes",
+      "community": 5,
+      "norm_label": "setup_routes()"
+    },
+    {
+      "label": "Create and configure FastAPI application",
+      "file_type": "rationale",
+      "source_file": "app.py",
+      "source_location": "L17",
+      "id": "pedidos_express_server_app_rationale_17",
+      "community": 5,
+      "norm_label": "create and configure fastapi application"
+    },
+    {
+      "label": "Setup all application routes",
+      "file_type": "rationale",
+      "source_file": "app.py",
+      "source_location": "L87",
+      "id": "pedidos_express_server_app_rationale_87",
+      "community": 5,
+      "norm_label": "setup all application routes"
+    },
+    {
+      "label": "load_products.py",
+      "file_type": "code",
+      "source_file": "load_products.py",
+      "source_location": "L1",
+      "id": "load_products_py",
+      "community": 40,
+      "norm_label": "load_products.py"
+    },
+    {
+      "label": "main.py",
+      "file_type": "code",
+      "source_file": "main.py",
+      "source_location": "L1",
+      "id": "main_py",
+      "community": 5,
+      "norm_label": "main.py"
+    },
+    {
+      "label": "main()",
+      "file_type": "code",
+      "source_file": "main.py",
+      "source_location": "L13",
+      "id": "pedidos_express_server_main_main",
+      "community": 5,
+      "norm_label": "main()"
+    },
+    {
+      "label": "testing Main application entry point",
+      "file_type": "rationale",
+      "source_file": "main.py",
+      "source_location": "L14",
+      "id": "pedidos_express_server_main_rationale_14",
+      "community": 5,
+      "norm_label": "testing main application entry point"
+    },
+    {
+      "label": "update_prices.py",
+      "file_type": "code",
+      "source_file": "update_prices.py",
+      "source_location": "L1",
+      "id": "update_prices_py",
+      "community": 36,
+      "norm_label": "update_prices.py"
+    },
+    {
+      "label": "update_prices()",
+      "file_type": "code",
+      "source_file": "update_prices.py",
+      "source_location": "L16",
+      "id": "pedidos_express_server_update_prices_update_prices",
+      "community": 36,
+      "norm_label": "update_prices()"
+    },
+    {
+      "label": "add_missing_products()",
+      "file_type": "code",
+      "source_file": "update_prices.py",
+      "source_location": "L38",
+      "id": "pedidos_express_server_update_prices_add_missing_products",
+      "community": 36,
+      "norm_label": "add_missing_products()"
+    },
+    {
+      "label": "Verifica qu\u00e9 productos de 'indexed_products' no existen en la DB local     y los",
+      "file_type": "rationale",
+      "source_file": "update_prices.py",
+      "source_location": "L39",
+      "id": "pedidos_express_server_update_prices_rationale_39",
+      "community": 36,
+      "norm_label": "verifica que productos de 'indexed_products' no existen en la db local     y los"
+    },
+    {
+      "label": "locations.py",
+      "file_type": "code",
+      "source_file": "enums/locations.py",
+      "source_location": "L1",
+      "id": "enums_locations_py",
+      "community": 34,
+      "norm_label": "locations.py"
+    },
+    {
+      "label": "Locations",
+      "file_type": "code",
+      "source_file": "enums/locations.py",
+      "source_location": "L3",
+      "id": "enums_locations_locations",
+      "community": 34,
+      "norm_label": "locations"
+    },
+    {
+      "label": "Enum",
+      "file_type": "code",
+      "source_file": "",
+      "source_location": "",
+      "id": "enum",
+      "community": 34,
+      "norm_label": "enum"
+    },
+    {
+      "label": "get_all()",
+      "file_type": "code",
+      "source_file": "enums/locations.py",
+      "source_location": "L11",
+      "id": "enums_locations_get_all",
+      "community": 34,
+      "norm_label": "get_all()"
+    },
+    {
+      "label": "Locations for the printer service",
+      "file_type": "rationale",
+      "source_file": "enums/locations.py",
+      "source_location": "L4",
+      "id": "enums_locations_rationale_4",
+      "community": 34,
+      "norm_label": "locations for the printer service"
+    },
+    {
+      "label": "Return all locations as a list",
+      "file_type": "rationale",
+      "source_file": "enums/locations.py",
+      "source_location": "L12",
+      "id": "enums_locations_rationale_12",
+      "community": 41,
+      "norm_label": "return all locations as a list"
+    },
+    {
+      "label": "recovery_service.py",
+      "file_type": "code",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L1",
+      "id": "services_recovery_service_py",
+      "community": 1,
+      "norm_label": "recovery_service.py"
+    },
+    {
+      "label": "RedisRecoveryData",
+      "file_type": "code",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L7",
+      "id": "services_recovery_service_redisrecoverydata",
+      "community": 1,
+      "norm_label": "redisrecoverydata"
+    },
+    {
+      "label": "BaseModel",
+      "file_type": "code",
+      "source_file": "",
+      "source_location": "",
+      "id": "basemodel",
+      "community": 1,
+      "norm_label": "basemodel"
+    },
+    {
+      "label": "generate_recovery_key()",
+      "file_type": "code",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L13",
+      "id": "services_recovery_service_generate_recovery_key",
+      "community": 1,
+      "norm_label": "generate_recovery_key()"
+    },
+    {
+      "label": "add_token()",
+      "file_type": "code",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L19",
+      "id": "services_recovery_service_add_token",
+      "community": 1,
+      "norm_label": "add_token()"
+    },
+    {
+      "label": "get_token()",
+      "file_type": "code",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L23",
+      "id": "services_recovery_service_get_token",
+      "community": 1,
+      "norm_label": "get_token()"
+    },
+    {
+      "label": "get_recovery_data()",
+      "file_type": "code",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L28",
+      "id": "services_recovery_service_get_recovery_data",
+      "community": 1,
+      "norm_label": "get_recovery_data()"
+    },
+    {
+      "label": "fudo_service.py",
+      "file_type": "code",
+      "source_file": "services/fudo_service.py",
+      "source_location": "L1",
+      "id": "services_fudo_service_py",
+      "community": 1,
+      "norm_label": "fudo_service.py"
+    },
+    {
+      "label": "add_product_to_fudo()",
+      "file_type": "code",
+      "source_file": "services/fudo_service.py",
+      "source_location": "L6",
+      "id": "services_fudo_service_add_product_to_fudo",
+      "community": 1,
+      "norm_label": "add_product_to_fudo()"
+    },
+    {
+      "label": "get_products_by_table()",
+      "file_type": "code",
+      "source_file": "services/fudo_service.py",
+      "source_location": "L27",
+      "id": "services_fudo_service_get_products_by_table",
+      "community": 1,
+      "norm_label": "get_products_by_table()"
+    },
+    {
+      "label": "Add a product to Fudo system",
+      "file_type": "rationale",
+      "source_file": "services/fudo_service.py",
+      "source_location": "L7",
+      "id": "services_fudo_service_rationale_7",
+      "community": 1,
+      "norm_label": "add a product to fudo system"
+    },
+    {
+      "label": "Get products for a specific table",
+      "file_type": "rationale",
+      "source_file": "services/fudo_service.py",
+      "source_location": "L28",
+      "id": "services_fudo_service_rationale_28",
+      "community": 1,
+      "norm_label": "get products for a specific table"
+    },
+    {
+      "label": "email_service.py",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L1",
+      "id": "services_email_service_py",
+      "community": 5,
+      "norm_label": "email_service.py"
+    },
+    {
+      "label": "EmailSender",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L54",
+      "id": "services_email_service_emailsender",
+      "community": 5,
+      "norm_label": "emailsender"
+    },
+    {
+      "label": ".__init__()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L55",
+      "id": "services_email_service_emailsender_init",
+      "community": 5,
+      "norm_label": ".__init__()"
+    },
+    {
+      "label": ".connect()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L65",
+      "id": "services_email_service_emailsender_connect",
+      "community": 5,
+      "norm_label": ".connect()"
+    },
+    {
+      "label": ".close()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L90",
+      "id": "services_email_service_emailsender_close",
+      "community": 5,
+      "norm_label": ".close()"
+    },
+    {
+      "label": "._create_fresh_connection()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L107",
+      "id": "services_email_service_emailsender_create_fresh_connection",
+      "community": 5,
+      "norm_label": "._create_fresh_connection()"
+    },
+    {
+      "label": "._start_queue_worker()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L119",
+      "id": "services_email_service_emailsender_start_queue_worker",
+      "community": 5,
+      "norm_label": "._start_queue_worker()"
+    },
+    {
+      "label": "._stop_queue_worker()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L128",
+      "id": "services_email_service_emailsender_stop_queue_worker",
+      "community": 5,
+      "norm_label": "._stop_queue_worker()"
+    },
+    {
+      "label": "._process_email_queue()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L147",
+      "id": "services_email_service_emailsender_process_email_queue",
+      "community": 5,
+      "norm_label": "._process_email_queue()"
+    },
+    {
+      "label": "._send_email_with_retry()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L186",
+      "id": "services_email_service_emailsender_send_email_with_retry",
+      "community": 5,
+      "norm_label": "._send_email_with_retry()"
+    },
+    {
+      "label": "._send_email_immediately()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L201",
+      "id": "services_email_service_emailsender_send_email_immediately",
+      "community": 5,
+      "norm_label": "._send_email_immediately()"
+    },
+    {
+      "label": ".send_email()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L237",
+      "id": "services_email_service_emailsender_send_email",
+      "community": 5,
+      "norm_label": ".send_email()"
+    },
+    {
+      "label": ".send_email_sync()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L253",
+      "id": "services_email_service_emailsender_send_email_sync",
+      "community": 5,
+      "norm_label": ".send_email_sync()"
+    },
+    {
+      "label": ".get_queue_size()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L286",
+      "id": "services_email_service_emailsender_get_queue_size",
+      "community": 5,
+      "norm_label": ".get_queue_size()"
+    },
+    {
+      "label": ".is_queue_processing()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L290",
+      "id": "services_email_service_emailsender_is_queue_processing",
+      "community": 5,
+      "norm_label": ".is_queue_processing()"
+    },
+    {
+      "label": ".clear_queue()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L294",
+      "id": "services_email_service_emailsender_clear_queue",
+      "community": 5,
+      "norm_label": ".clear_queue()"
+    },
+    {
+      "label": "initialize_email_sender()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L310",
+      "id": "services_email_service_initialize_email_sender",
+      "community": 5,
+      "norm_label": "initialize_email_sender()"
+    },
+    {
+      "label": "get_email_sender()",
+      "file_type": "code",
+      "source_file": "services/email_service.py",
+      "source_location": "L322",
+      "id": "services_email_service_get_email_sender",
+      "community": 0,
+      "norm_label": "get_email_sender()"
+    },
+    {
+      "label": "Email Service with Asynchronous Queue Processing  This service provides email se",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L1",
+      "id": "services_email_service_rationale_1",
+      "community": 5,
+      "norm_label": "email service with asynchronous queue processing  this service provides email se"
+    },
+    {
+      "label": "Establish SMTP connection - kept for compatibility but not used for persistent c",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L66",
+      "id": "services_email_service_rationale_66",
+      "community": 5,
+      "norm_label": "establish smtp connection - kept for compatibility but not used for persistent c"
+    },
+    {
+      "label": "Close SMTP connection and stop queue worker",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L91",
+      "id": "services_email_service_rationale_91",
+      "community": 5,
+      "norm_label": "close smtp connection and stop queue worker"
+    },
+    {
+      "label": "Create a fresh SMTP connection for each email send",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L108",
+      "id": "services_email_service_rationale_108",
+      "community": 5,
+      "norm_label": "create a fresh smtp connection for each email send"
+    },
+    {
+      "label": "Start the background thread to process email queue",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L120",
+      "id": "services_email_service_rationale_120",
+      "community": 5,
+      "norm_label": "start the background thread to process email queue"
+    },
+    {
+      "label": "Stop the background thread processing email queue",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L129",
+      "id": "services_email_service_rationale_129",
+      "community": 5,
+      "norm_label": "stop the background thread processing email queue"
+    },
+    {
+      "label": "Background worker that processes emails from the queue with 10-second delays",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L148",
+      "id": "services_email_service_rationale_148",
+      "community": 5,
+      "norm_label": "background worker that processes emails from the queue with 10-second delays"
+    },
+    {
+      "label": "Send email with retry logic using fresh connections",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L187",
+      "id": "services_email_service_rationale_187",
+      "community": 5,
+      "norm_label": "send email with retry logic using fresh connections"
+    },
+    {
+      "label": "Send email immediately using a fresh SMTP connection",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L202",
+      "id": "services_email_service_rationale_202",
+      "community": 5,
+      "norm_label": "send email immediately using a fresh smtp connection"
+    },
+    {
+      "label": "Add email to queue for asynchronous sending with 10-second delays",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L238",
+      "id": "services_email_service_rationale_238",
+      "community": 5,
+      "norm_label": "add email to queue for asynchronous sending with 10-second delays"
+    },
+    {
+      "label": "Send email immediately (synchronous) using fresh connection",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L254",
+      "id": "services_email_service_rationale_254",
+      "community": 5,
+      "norm_label": "send email immediately (synchronous) using fresh connection"
+    },
+    {
+      "label": "Get the current number of emails in the queue",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L287",
+      "id": "services_email_service_rationale_287",
+      "community": 5,
+      "norm_label": "get the current number of emails in the queue"
+    },
+    {
+      "label": "Check if the queue worker is currently processing emails",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L291",
+      "id": "services_email_service_rationale_291",
+      "community": 5,
+      "norm_label": "check if the queue worker is currently processing emails"
+    },
+    {
+      "label": "Clear all pending emails from the queue",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L295",
+      "id": "services_email_service_rationale_295",
+      "community": 5,
+      "norm_label": "clear all pending emails from the queue"
+    },
+    {
+      "label": "Initialize the global email sender instance",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L311",
+      "id": "services_email_service_rationale_311",
+      "community": 5,
+      "norm_label": "initialize the global email sender instance"
+    },
+    {
+      "label": "Get the global email sender instance, initialize if needed",
+      "file_type": "rationale",
+      "source_file": "services/email_service.py",
+      "source_location": "L323",
+      "id": "services_email_service_rationale_323",
+      "community": 0,
+      "norm_label": "get the global email sender instance, initialize if needed"
+    },
+    {
+      "label": "print_service.py",
+      "file_type": "code",
+      "source_file": "services/print_service.py",
+      "source_location": "L1",
+      "id": "services_print_service_py",
+      "community": 0,
+      "norm_label": "print_service.py"
+    },
+    {
+      "label": "get_printer_url()",
+      "file_type": "code",
+      "source_file": "services/print_service.py",
+      "source_location": "L13",
+      "id": "services_print_service_get_printer_url",
+      "community": 0,
+      "norm_label": "get_printer_url()"
+    },
+    {
+      "label": "print_order()",
+      "file_type": "code",
+      "source_file": "services/print_service.py",
+      "source_location": "L19",
+      "id": "services_print_service_print_order",
+      "community": 0,
+      "norm_label": "print_order()"
+    },
+    {
+      "label": "print_ticket()",
+      "file_type": "code",
+      "source_file": "services/print_service.py",
+      "source_location": "L72",
+      "id": "services_print_service_print_ticket",
+      "community": 0,
+      "norm_label": "print_ticket()"
+    },
+    {
+      "label": "print_billing()",
+      "file_type": "code",
+      "source_file": "services/print_service.py",
+      "source_location": "L106",
+      "id": "services_print_service_print_billing",
+      "community": 0,
+      "norm_label": "print_billing()"
+    },
+    {
+      "label": "get_status()",
+      "file_type": "code",
+      "source_file": "services/print_service.py",
+      "source_location": "L145",
+      "id": "services_print_service_get_status",
+      "community": 0,
+      "norm_label": "get_status()"
+    },
+    {
+      "label": "Send order to printer",
+      "file_type": "rationale",
+      "source_file": "services/print_service.py",
+      "source_location": "L20",
+      "id": "services_print_service_rationale_20",
+      "community": 0,
+      "norm_label": "send order to printer"
+    },
+    {
+      "label": "Send a ticket to the printer",
+      "file_type": "rationale",
+      "source_file": "services/print_service.py",
+      "source_location": "L73",
+      "id": "services_print_service_rationale_73",
+      "community": 0,
+      "norm_label": "send a ticket to the printer"
+    },
+    {
+      "label": "Send billing order to printer",
+      "file_type": "rationale",
+      "source_file": "services/print_service.py",
+      "source_location": "L107",
+      "id": "services_print_service_rationale_107",
+      "community": 0,
+      "norm_label": "send billing order to printer"
+    },
+    {
+      "label": "Get the status of the printer service",
+      "file_type": "rationale",
+      "source_file": "services/print_service.py",
+      "source_location": "L146",
+      "id": "services_print_service_rationale_146",
+      "community": 0,
+      "norm_label": "get the status of the printer service"
+    },
+    {
+      "label": "data_service.py",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1",
+      "id": "services_data_service_py",
+      "community": 8,
+      "norm_label": "data_service.py"
+    },
+    {
+      "label": "BaseDataService",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L87",
+      "id": "services_data_service_basedataservice",
+      "community": 8,
+      "norm_label": "basedataservice"
+    },
+    {
+      "label": "ABC",
+      "file_type": "code",
+      "source_file": "",
+      "source_location": "",
+      "id": "abc",
+      "community": 8,
+      "norm_label": "abc"
+    },
+    {
+      "label": ".__init__()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L90",
+      "id": "services_data_service_basedataservice_init",
+      "community": 8,
+      "norm_label": ".__init__()"
+    },
+    {
+      "label": "._get_connection()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L93",
+      "id": "services_data_service_basedataservice_get_connection",
+      "community": 7,
+      "norm_label": "._get_connection()"
+    },
+    {
+      "label": "UserDataService",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L106",
+      "id": "services_data_service_userdataservice",
+      "community": 11,
+      "norm_label": "userdataservice"
+    },
+    {
+      "label": ".create()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L109",
+      "id": "services_data_service_userdataservice_create",
+      "community": 11,
+      "norm_label": ".create()"
+    },
+    {
+      "label": ".get_all()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L134",
+      "id": "services_data_service_userdataservice_get_all",
+      "community": 11,
+      "norm_label": ".get_all()"
+    },
+    {
+      "label": ".get_by_id()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L155",
+      "id": "services_data_service_userdataservice_get_by_id",
+      "community": 11,
+      "norm_label": ".get_by_id()"
+    },
+    {
+      "label": ".get_by_email()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L176",
+      "id": "services_data_service_userdataservice_get_by_email",
+      "community": 11,
+      "norm_label": ".get_by_email()"
+    },
+    {
+      "label": ".login()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L198",
+      "id": "services_data_service_userdataservice_login",
+      "community": 11,
+      "norm_label": ".login()"
+    },
+    {
+      "label": ".permissions()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L210",
+      "id": "services_data_service_userdataservice_permissions",
+      "community": 11,
+      "norm_label": ".permissions()"
+    },
+    {
+      "label": ".get_by_rut()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L226",
+      "id": "services_data_service_userdataservice_get_by_rut",
+      "community": 11,
+      "norm_label": ".get_by_rut()"
+    },
+    {
+      "label": ".get_next_id()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L252",
+      "id": "services_data_service_userdataservice_get_next_id",
+      "community": 11,
+      "norm_label": ".get_next_id()"
+    },
+    {
+      "label": ".update()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L264",
+      "id": "services_data_service_userdataservice_update",
+      "community": 11,
+      "norm_label": ".update()"
+    },
+    {
+      "label": ".set_reward_progress()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L302",
+      "id": "services_data_service_userdataservice_set_reward_progress",
+      "community": 11,
+      "norm_label": ".set_reward_progress()"
+    },
+    {
+      "label": ".delete()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L321",
+      "id": "services_data_service_userdataservice_delete",
+      "community": 11,
+      "norm_label": ".delete()"
+    },
+    {
+      "label": ".update_kleincoins()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L335",
+      "id": "services_data_service_userdataservice_update_kleincoins",
+      "community": 11,
+      "norm_label": ".update_kleincoins()"
+    },
+    {
+      "label": ".get_kleincoins()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L355",
+      "id": "services_data_service_userdataservice_get_kleincoins",
+      "community": 11,
+      "norm_label": ".get_kleincoins()"
+    },
+    {
+      "label": "BlacklistDataService",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L372",
+      "id": "services_data_service_blacklistdataservice",
+      "community": 8,
+      "norm_label": "blacklistdataservice"
+    },
+    {
+      "label": ".create()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L375",
+      "id": "services_data_service_blacklistdataservice_create",
+      "community": 8,
+      "norm_label": ".create()"
+    },
+    {
+      "label": ".get_all()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L396",
+      "id": "services_data_service_blacklistdataservice_get_all",
+      "community": 8,
+      "norm_label": ".get_all()"
+    },
+    {
+      "label": ".get_by_id()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L417",
+      "id": "services_data_service_blacklistdataservice_get_by_id",
+      "community": 8,
+      "norm_label": ".get_by_id()"
+    },
+    {
+      "label": ".get_blacklisted_user_ids()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L439",
+      "id": "services_data_service_blacklistdataservice_get_blacklisted_user_ids",
+      "community": 8,
+      "norm_label": ".get_blacklisted_user_ids()"
+    },
+    {
+      "label": ".is_user_blacklisted()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L448",
+      "id": "services_data_service_blacklistdataservice_is_user_blacklisted",
+      "community": 8,
+      "norm_label": ".is_user_blacklisted()"
+    },
+    {
+      "label": ".update()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L458",
+      "id": "services_data_service_blacklistdataservice_update",
+      "community": 8,
+      "norm_label": ".update()"
+    },
+    {
+      "label": ".delete()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L464",
+      "id": "services_data_service_blacklistdataservice_delete",
+      "community": 8,
+      "norm_label": ".delete()"
+    },
+    {
+      "label": ".remove_user_from_blacklist()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L478",
+      "id": "services_data_service_blacklistdataservice_remove_user_from_blacklist",
+      "community": 8,
+      "norm_label": ".remove_user_from_blacklist()"
+    },
+    {
+      "label": "ProductDataService",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L494",
+      "id": "services_data_service_productdataservice",
+      "community": 14,
+      "norm_label": "productdataservice"
+    },
+    {
+      "label": ".create()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L502",
+      "id": "services_data_service_productdataservice_create",
+      "community": 14,
+      "norm_label": ".create()"
+    },
+    {
+      "label": ".load_data()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L530",
+      "id": "services_data_service_productdataservice_load_data",
+      "community": 35,
+      "norm_label": ".load_data()"
+    },
+    {
+      "label": ".get_all()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L550",
+      "id": "services_data_service_productdataservice_get_all",
+      "community": 14,
+      "norm_label": ".get_all()"
+    },
+    {
+      "label": ".get_by_id()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L592",
+      "id": "services_data_service_productdataservice_get_by_id",
+      "community": 14,
+      "norm_label": ".get_by_id()"
+    },
+    {
+      "label": ".get_by_type()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L614",
+      "id": "services_data_service_productdataservice_get_by_type",
+      "community": 14,
+      "norm_label": ".get_by_type()"
+    },
+    {
+      "label": ".search_by_name()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L636",
+      "id": "services_data_service_productdataservice_search_by_name",
+      "community": 14,
+      "norm_label": ".search_by_name()"
+    },
+    {
+      "label": ".get_products()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L658",
+      "id": "services_data_service_productdataservice_get_products",
+      "community": 14,
+      "norm_label": ".get_products()"
+    },
+    {
+      "label": "._image_process()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L665",
+      "id": "services_data_service_productdataservice_image_process",
+      "community": 14,
+      "norm_label": "._image_process()"
+    },
+    {
+      "label": ".update()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L676",
+      "id": "services_data_service_productdataservice_update",
+      "community": 14,
+      "norm_label": ".update()"
+    },
+    {
+      "label": ".get_active_products()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L734",
+      "id": "services_data_service_productdataservice_get_active_products",
+      "community": 14,
+      "norm_label": ".get_active_products()"
+    },
+    {
+      "label": ".get_inactive_products()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L756",
+      "id": "services_data_service_productdataservice_get_inactive_products",
+      "community": 14,
+      "norm_label": ".get_inactive_products()"
+    },
+    {
+      "label": ".activate_product()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L778",
+      "id": "services_data_service_productdataservice_activate_product",
+      "community": 33,
+      "norm_label": ".activate_product()"
+    },
+    {
+      "label": ".deactivate_product()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L782",
+      "id": "services_data_service_productdataservice_deactivate_product",
+      "community": 33,
+      "norm_label": ".deactivate_product()"
+    },
+    {
+      "label": ".is_product_active()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L786",
+      "id": "services_data_service_productdataservice_is_product_active",
+      "community": 14,
+      "norm_label": ".is_product_active()"
+    },
+    {
+      "label": ".update_cache()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L792",
+      "id": "services_data_service_productdataservice_update_cache",
+      "community": 14,
+      "norm_label": ".update_cache()"
+    },
+    {
+      "label": ".delete()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L797",
+      "id": "services_data_service_productdataservice_delete",
+      "community": 7,
+      "norm_label": ".delete()"
+    },
+    {
+      "label": "SalesDataService",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L816",
+      "id": "services_data_service_salesdataservice",
+      "community": 7,
+      "norm_label": "salesdataservice"
+    },
+    {
+      "label": ".create()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L819",
+      "id": "services_data_service_salesdataservice_create",
+      "community": 35,
+      "norm_label": ".create()"
+    },
+    {
+      "label": ".add_product_to_sale()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L861",
+      "id": "services_data_service_salesdataservice_add_product_to_sale",
+      "community": 7,
+      "norm_label": ".add_product_to_sale()"
+    },
+    {
+      "label": ".add_products_to_sale()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L881",
+      "id": "services_data_service_salesdataservice_add_products_to_sale",
+      "community": 7,
+      "norm_label": ".add_products_to_sale()"
+    },
+    {
+      "label": ".get_all()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L908",
+      "id": "services_data_service_salesdataservice_get_all",
+      "community": 7,
+      "norm_label": ".get_all()"
+    },
+    {
+      "label": ".get_by_id()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L934",
+      "id": "services_data_service_salesdataservice_get_by_id",
+      "community": 7,
+      "norm_label": ".get_by_id()"
+    },
+    {
+      "label": ".get_by_fudo_id()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L959",
+      "id": "services_data_service_salesdataservice_get_by_fudo_id",
+      "community": 7,
+      "norm_label": ".get_by_fudo_id()"
+    },
+    {
+      "label": ".get_by_user()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L984",
+      "id": "services_data_service_salesdataservice_get_by_user",
+      "community": 7,
+      "norm_label": ".get_by_user()"
+    },
+    {
+      "label": ".get_sale_products_ids()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1016",
+      "id": "services_data_service_salesdataservice_get_sale_products_ids",
+      "community": 7,
+      "norm_label": ".get_sale_products_ids()"
+    },
+    {
+      "label": ".get_sale_products()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1027",
+      "id": "services_data_service_salesdataservice_get_sale_products",
+      "community": 7,
+      "norm_label": ".get_sale_products()"
+    },
+    {
+      "label": ".get_by_table()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1055",
+      "id": "services_data_service_salesdataservice_get_by_table",
+      "community": 7,
+      "norm_label": ".get_by_table()"
+    },
+    {
+      "label": ".update_product_quantity()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1084",
+      "id": "services_data_service_salesdataservice_update_product_quantity",
+      "community": 7,
+      "norm_label": ".update_product_quantity()"
+    },
+    {
+      "label": ".get_product_quantity_in_sale()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1104",
+      "id": "services_data_service_salesdataservice_get_product_quantity_in_sale",
+      "community": 7,
+      "norm_label": ".get_product_quantity_in_sale()"
+    },
+    {
+      "label": ".update()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1117",
+      "id": "services_data_service_salesdataservice_update",
+      "community": 33,
+      "norm_label": ".update()"
+    },
+    {
+      "label": ".delete()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1149",
+      "id": "services_data_service_salesdataservice_delete",
+      "community": 7,
+      "norm_label": ".delete()"
+    },
+    {
+      "label": ".remove_product_from_sale()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1171",
+      "id": "services_data_service_salesdataservice_remove_product_from_sale",
+      "community": 7,
+      "norm_label": ".remove_product_from_sale()"
+    },
+    {
+      "label": ".decrease_product_quantity()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1188",
+      "id": "services_data_service_salesdataservice_decrease_product_quantity",
+      "community": 7,
+      "norm_label": ".decrease_product_quantity()"
+    },
+    {
+      "label": "DataServiceFactory",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1231",
+      "id": "services_data_service_dataservicefactory",
+      "community": 8,
+      "norm_label": "dataservicefactory"
+    },
+    {
+      "label": "get_user_service()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1235",
+      "id": "services_data_service_get_user_service",
+      "community": 8,
+      "norm_label": "get_user_service()"
+    },
+    {
+      "label": "get_blacklist_service()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1240",
+      "id": "services_data_service_get_blacklist_service",
+      "community": 8,
+      "norm_label": "get_blacklist_service()"
+    },
+    {
+      "label": "get_product_service()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1245",
+      "id": "services_data_service_get_product_service",
+      "community": 8,
+      "norm_label": "get_product_service()"
+    },
+    {
+      "label": "get_sales_service()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1250",
+      "id": "services_data_service_get_sales_service",
+      "community": 8,
+      "norm_label": "get_sales_service()"
+    },
+    {
+      "label": "load_bg_data()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1256",
+      "id": "services_data_service_load_bg_data",
+      "community": 8,
+      "norm_label": "load_bg_data()"
+    },
+    {
+      "label": "initialize_db()",
+      "file_type": "code",
+      "source_file": "services/data_service.py",
+      "source_location": "L1268",
+      "id": "services_data_service_initialize_db",
+      "community": 35,
+      "norm_label": "initialize_db()"
+    },
+    {
+      "label": "Abstract base class for data services",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L88",
+      "id": "services_data_service_rationale_88",
+      "community": 8,
+      "norm_label": "abstract base class for data services"
+    },
+    {
+      "label": "Get database connection",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L94",
+      "id": "services_data_service_rationale_94",
+      "community": 7,
+      "norm_label": "get database connection"
+    },
+    {
+      "label": "Service for managing user data",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L107",
+      "id": "services_data_service_rationale_107",
+      "community": 11,
+      "norm_label": "service for managing user data"
+    },
+    {
+      "label": "Add a new user to the database",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L110",
+      "id": "services_data_service_rationale_110",
+      "community": 11,
+      "norm_label": "add a new user to the database"
+    },
+    {
+      "label": "Get all users from the database",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L135",
+      "id": "services_data_service_rationale_135",
+      "community": 11,
+      "norm_label": "get all users from the database"
+    },
+    {
+      "label": "Get user data from the database",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L156",
+      "id": "services_data_service_rationale_156",
+      "community": 11,
+      "norm_label": "get user data from the database"
+    },
+    {
+      "label": "Login user by email and pin hash",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L199",
+      "id": "services_data_service_rationale_199",
+      "community": 11,
+      "norm_label": "login user by email and pin hash"
+    },
+    {
+      "label": "Update user information in the database",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L265",
+      "id": "services_data_service_rationale_265",
+      "community": 11,
+      "norm_label": "update user information in the database"
+    },
+    {
+      "label": "Add progress to user's reward",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L303",
+      "id": "services_data_service_rationale_303",
+      "community": 11,
+      "norm_label": "add progress to user's reward"
+    },
+    {
+      "label": "Delete a user from the database",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L322",
+      "id": "services_data_service_rationale_322",
+      "community": 11,
+      "norm_label": "delete a user from the database"
+    },
+    {
+      "label": "Update user's kleincoins",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L336",
+      "id": "services_data_service_rationale_336",
+      "community": 11,
+      "norm_label": "update user's kleincoins"
+    },
+    {
+      "label": "Get user's kleincoins",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L356",
+      "id": "services_data_service_rationale_356",
+      "community": 11,
+      "norm_label": "get user's kleincoins"
+    },
+    {
+      "label": "Service for managing blacklisted users",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L373",
+      "id": "services_data_service_rationale_373",
+      "community": 8,
+      "norm_label": "service for managing blacklisted users"
+    },
+    {
+      "label": "Add a user to the blacklist",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L376",
+      "id": "services_data_service_rationale_376",
+      "community": 8,
+      "norm_label": "add a user to the blacklist"
+    },
+    {
+      "label": "Get all blacklisted users",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L397",
+      "id": "services_data_service_rationale_397",
+      "community": 8,
+      "norm_label": "get all blacklisted users"
+    },
+    {
+      "label": "Get blacklist entry by ID",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L418",
+      "id": "services_data_service_rationale_418",
+      "community": 8,
+      "norm_label": "get blacklist entry by id"
+    },
+    {
+      "label": "Get a list of blacklisted user IDs",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L440",
+      "id": "services_data_service_rationale_440",
+      "community": 8,
+      "norm_label": "get a list of blacklisted user ids"
+    },
+    {
+      "label": "Check if a user is blacklisted",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L449",
+      "id": "services_data_service_rationale_449",
+      "community": 8,
+      "norm_label": "check if a user is blacklisted"
+    },
+    {
+      "label": "Update blacklist entry (not commonly used)",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L459",
+      "id": "services_data_service_rationale_459",
+      "community": 8,
+      "norm_label": "update blacklist entry (not commonly used)"
+    },
+    {
+      "label": "Remove a blacklist entry by ID",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L465",
+      "id": "services_data_service_rationale_465",
+      "community": 8,
+      "norm_label": "remove a blacklist entry by id"
+    },
+    {
+      "label": "Remove a user from the blacklist",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L479",
+      "id": "services_data_service_rationale_479",
+      "community": 8,
+      "norm_label": "remove a user from the blacklist"
+    },
+    {
+      "label": "Add a new product to the database",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L503",
+      "id": "services_data_service_rationale_503",
+      "community": 14,
+      "norm_label": "add a new product to the database"
+    },
+    {
+      "label": "Load multiple products from a list of dictionaries",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L531",
+      "id": "services_data_service_rationale_531",
+      "community": 35,
+      "norm_label": "load multiple products from a list of dictionaries"
+    },
+    {
+      "label": "Get all products from the database",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L551",
+      "id": "services_data_service_rationale_551",
+      "community": 14,
+      "norm_label": "get all products from the database"
+    },
+    {
+      "label": "Search products by name",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L637",
+      "id": "services_data_service_rationale_637",
+      "community": 14,
+      "norm_label": "search products by name"
+    },
+    {
+      "label": "Get multiple products by their IDs",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L659",
+      "id": "services_data_service_rationale_659",
+      "community": 14,
+      "norm_label": "get multiple products by their ids"
+    },
+    {
+      "label": "Process image for storage",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L666",
+      "id": "services_data_service_rationale_666",
+      "community": 14,
+      "norm_label": "process image for storage"
+    },
+    {
+      "label": "Update product information",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L677",
+      "id": "services_data_service_rationale_677",
+      "community": 14,
+      "norm_label": "update product information"
+    },
+    {
+      "label": "Get only active products (status = 1)",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L735",
+      "id": "services_data_service_rationale_735",
+      "community": 14,
+      "norm_label": "get only active products (status = 1)"
+    },
+    {
+      "label": "Get only inactive products (status = 0)",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L757",
+      "id": "services_data_service_rationale_757",
+      "community": 14,
+      "norm_label": "get only inactive products (status = 0)"
+    },
+    {
+      "label": "Activate a product (set status to 1)",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L779",
+      "id": "services_data_service_rationale_779",
+      "community": 33,
+      "norm_label": "activate a product (set status to 1)"
+    },
+    {
+      "label": "Deactivate a product (set status to 0)",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L783",
+      "id": "services_data_service_rationale_783",
+      "community": 33,
+      "norm_label": "deactivate a product (set status to 0)"
+    },
+    {
+      "label": "Check if a product is active",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L787",
+      "id": "services_data_service_rationale_787",
+      "community": 14,
+      "norm_label": "check if a product is active"
+    },
+    {
+      "label": "Delete a product from the database",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L798",
+      "id": "services_data_service_rationale_798",
+      "community": 7,
+      "norm_label": "delete a product from the database"
+    },
+    {
+      "label": "Service for managing sales",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L817",
+      "id": "services_data_service_rationale_817",
+      "community": 7,
+      "norm_label": "service for managing sales"
+    },
+    {
+      "label": "Create a new sale with products and quantities",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L820",
+      "id": "services_data_service_rationale_820",
+      "community": 35,
+      "norm_label": "create a new sale with products and quantities"
+    },
+    {
+      "label": "Add a product to an existing sale with quantity",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L862",
+      "id": "services_data_service_rationale_862",
+      "community": 7,
+      "norm_label": "add a product to an existing sale with quantity"
+    },
+    {
+      "label": "Add multiple products to an existing sale with quantities",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L882",
+      "id": "services_data_service_rationale_882",
+      "community": 7,
+      "norm_label": "add multiple products to an existing sale with quantities"
+    },
+    {
+      "label": "Get all sales from the database",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L909",
+      "id": "services_data_service_rationale_909",
+      "community": 7,
+      "norm_label": "get all sales from the database"
+    },
+    {
+      "label": "Get product IDs for a specific sale",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1017",
+      "id": "services_data_service_rationale_1017",
+      "community": 7,
+      "norm_label": "get product ids for a specific sale"
+    },
+    {
+      "label": "Get products for a specific sale with quantities",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1028",
+      "id": "services_data_service_rationale_1028",
+      "community": 7,
+      "norm_label": "get products for a specific sale with quantities"
+    },
+    {
+      "label": "Get sales by table number",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1056",
+      "id": "services_data_service_rationale_1056",
+      "community": 7,
+      "norm_label": "get sales by table number"
+    },
+    {
+      "label": "Update quantity of a product in a sale",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1085",
+      "id": "services_data_service_rationale_1085",
+      "community": 7,
+      "norm_label": "update quantity of a product in a sale"
+    },
+    {
+      "label": "Get quantity of a specific product in a sale",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1105",
+      "id": "services_data_service_rationale_1105",
+      "community": 7,
+      "norm_label": "get quantity of a specific product in a sale"
+    },
+    {
+      "label": "Update sale information (products should be updated via specific methods)",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1118",
+      "id": "services_data_service_rationale_1118",
+      "community": 33,
+      "norm_label": "update sale information (products should be updated via specific methods)"
+    },
+    {
+      "label": "Delete a sale and its product relationships",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1150",
+      "id": "services_data_service_rationale_1150",
+      "community": 7,
+      "norm_label": "delete a sale and its product relationships"
+    },
+    {
+      "label": "Remove a product from a sale (removes all quantity)",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1172",
+      "id": "services_data_service_rationale_1172",
+      "community": 7,
+      "norm_label": "remove a product from a sale (removes all quantity)"
+    },
+    {
+      "label": "Decrease quantity of a product in a sale, removes if quantity becomes 0 or less",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1189",
+      "id": "services_data_service_rationale_1189",
+      "community": 7,
+      "norm_label": "decrease quantity of a product in a sale, removes if quantity becomes 0 or less"
+    },
+    {
+      "label": "Factory class to create data service instances",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1232",
+      "id": "services_data_service_rationale_1232",
+      "community": 8,
+      "norm_label": "factory class to create data service instances"
+    },
+    {
+      "label": "Get user data service instance",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1236",
+      "id": "services_data_service_rationale_1236",
+      "community": 42,
+      "norm_label": "get user data service instance"
+    },
+    {
+      "label": "Get blacklist data service instance",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1241",
+      "id": "services_data_service_rationale_1241",
+      "community": 43,
+      "norm_label": "get blacklist data service instance"
+    },
+    {
+      "label": "Get product data service instance",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1246",
+      "id": "services_data_service_rationale_1246",
+      "community": 44,
+      "norm_label": "get product data service instance"
+    },
+    {
+      "label": "Get sales data service instance",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1251",
+      "id": "services_data_service_rationale_1251",
+      "community": 45,
+      "norm_label": "get sales data service instance"
+    },
+    {
+      "label": "Load background data for AI assistant",
+      "file_type": "rationale",
+      "source_file": "services/data_service.py",
+      "source_location": "L1257",
+      "id": "services_data_service_rationale_1257",
+      "community": 8,
+      "norm_label": "load background data for ai assistant"
+    },
+    {
+      "label": "__init__.py",
+      "file_type": "code",
+      "source_file": "services/__init__.py",
+      "source_location": "L1",
+      "id": "services_init_py",
+      "community": 46,
+      "norm_label": "__init__.py"
+    },
+    {
+      "label": "openai_service.py",
+      "file_type": "code",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L1",
+      "id": "services_openai_service_openai_service_py",
+      "community": 6,
+      "norm_label": "openai_service.py"
+    },
+    {
+      "label": "get_relevant_context()",
+      "file_type": "code",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L19",
+      "id": "openai_service_openai_service_get_relevant_context",
+      "community": 6,
+      "norm_label": "get_relevant_context()"
+    },
+    {
+      "label": "generate_completion()",
+      "file_type": "code",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L38",
+      "id": "openai_service_openai_service_generate_completion",
+      "community": 6,
+      "norm_label": "generate_completion()"
+    },
+    {
+      "label": "admin_completion()",
+      "file_type": "code",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L121",
+      "id": "openai_service_openai_service_admin_completion",
+      "community": 6,
+      "norm_label": "admin_completion()"
+    },
+    {
+      "label": "Generate OpenAI admin completion",
+      "file_type": "rationale",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L123",
+      "id": "openai_service_openai_service_rationale_123",
+      "community": 6,
+      "norm_label": "generate openai admin completion"
+    },
+    {
+      "label": "openai_tools.py",
+      "file_type": "code",
+      "source_file": "services/openai_service/openai_tools.py",
+      "source_location": "L1",
+      "id": "services_openai_service_openai_tools_py",
+      "community": 38,
+      "norm_label": "openai_tools.py"
+    },
+    {
+      "label": "feedback()",
+      "file_type": "code",
+      "source_file": "services/openai_service/openai_tools.py",
+      "source_location": "L23",
+      "id": "openai_service_openai_tools_feedback",
+      "community": 38,
+      "norm_label": "feedback()"
+    },
+    {
+      "label": "Send feedback about the app.          Args:         message (str): The feedback",
+      "file_type": "rationale",
+      "source_file": "services/openai_service/openai_tools.py",
+      "source_location": "L24",
+      "id": "openai_service_openai_tools_rationale_24",
+      "community": 38,
+      "norm_label": "send feedback about the app.          args:         message (str): the feedback"
+    },
+    {
+      "label": "__init__.py",
+      "file_type": "code",
+      "source_file": "services/openai_service/__init__.py",
+      "source_location": "L1",
+      "id": "services_openai_service_init_py",
+      "community": 47,
+      "norm_label": "__init__.py"
+    },
+    {
+      "label": "products.py",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L1",
+      "id": "routes_products_py",
+      "community": 0,
+      "norm_label": "products.py"
+    },
+    {
+      "label": "apply_promo_price()",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L46",
+      "id": "routes_products_apply_promo_price",
+      "community": 0,
+      "norm_label": "apply_promo_price()"
+    },
+    {
+      "label": "get_products()",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L61",
+      "id": "routes_products_get_products",
+      "community": 0,
+      "norm_label": "get_products()"
+    },
+    {
+      "label": "get_product()",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L82",
+      "id": "routes_products_get_product",
+      "community": 0,
+      "norm_label": "get_product()"
+    },
+    {
+      "label": "get_free_beer()",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L106",
+      "id": "routes_products_get_free_beer",
+      "community": 0,
+      "norm_label": "get_free_beer()"
+    },
+    {
+      "label": "create_product()",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L128",
+      "id": "routes_products_create_product",
+      "community": 0,
+      "norm_label": "create_product()"
+    },
+    {
+      "label": "switch_product_status()",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L152",
+      "id": "routes_products_switch_product_status",
+      "community": 0,
+      "norm_label": "switch_product_status()"
+    },
+    {
+      "label": "delete_product()",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L183",
+      "id": "routes_products_delete_product",
+      "community": 0,
+      "norm_label": "delete_product()"
+    },
+    {
+      "label": "edit_product()",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L210",
+      "id": "routes_products_edit_product",
+      "community": 0,
+      "norm_label": "edit_product()"
+    },
+    {
+      "label": "get_table_items()",
+      "file_type": "code",
+      "source_file": "routes/products.py",
+      "source_location": "L242",
+      "id": "routes_products_get_table_items",
+      "community": 0,
+      "norm_label": "get_table_items()"
+    },
+    {
+      "label": "Product Routes Module  This module defines all API endpoints for product managem",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L3",
+      "id": "routes_products_rationale_3",
+      "community": 0,
+      "norm_label": "product routes module  this module defines all api endpoints for product managem"
+    },
+    {
+      "label": "Apply promotional price to a product if applicable.",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L47",
+      "id": "routes_products_rationale_47",
+      "community": 0,
+      "norm_label": "apply promotional price to a product if applicable."
+    },
+    {
+      "label": "Get all products - Available to all authenticated users      Returns:         JS",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L62",
+      "id": "routes_products_rationale_62",
+      "community": 0,
+      "norm_label": "get all products - available to all authenticated users      returns:         js"
+    },
+    {
+      "label": "Get a specific product by ID - Available to all authenticated users      Args:",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L83",
+      "id": "routes_products_rationale_83",
+      "community": 0,
+      "norm_label": "get a specific product by id - available to all authenticated users      args:"
+    },
+    {
+      "label": "Get the free beer product - Available to all authenticated users      Returns:",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L107",
+      "id": "routes_products_rationale_107",
+      "community": 0,
+      "norm_label": "get the free beer product - available to all authenticated users      returns:"
+    },
+    {
+      "label": "Create a new product - Requires manager permissions (level >= 1)          Args:",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L129",
+      "id": "routes_products_rationale_129",
+      "community": 0,
+      "norm_label": "create a new product - requires manager permissions (level >= 1)          args:"
+    },
+    {
+      "label": "Toggle product status between active/inactive - Requires manager permissions (le",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L153",
+      "id": "routes_products_rationale_153",
+      "community": 0,
+      "norm_label": "toggle product status between active/inactive - requires manager permissions (le"
+    },
+    {
+      "label": "Delete a product permanently - Requires admin permissions (level == 2)",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L184",
+      "id": "routes_products_rationale_184",
+      "community": 0,
+      "norm_label": "delete a product permanently - requires admin permissions (level == 2)"
+    },
+    {
+      "label": "Edit an existing product - Requires manager permissions (level >= 1)          Ar",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L211",
+      "id": "routes_products_rationale_211",
+      "community": 0,
+      "norm_label": "edit an existing product - requires manager permissions (level >= 1)          ar"
+    },
+    {
+      "label": "Get items for a specific table",
+      "file_type": "rationale",
+      "source_file": "routes/products.py",
+      "source_location": "L243",
+      "id": "routes_products_rationale_243",
+      "community": 0,
+      "norm_label": "get items for a specific table"
+    },
+    {
+      "label": "sales.py",
+      "file_type": "code",
+      "source_file": "routes/sales.py",
+      "source_location": "L1",
+      "id": "routes_sales_py",
+      "community": 0,
+      "norm_label": "sales.py"
+    },
+    {
+      "label": "get_user_sales()",
+      "file_type": "code",
+      "source_file": "routes/sales.py",
+      "source_location": "L19",
+      "id": "routes_sales_get_user_sales",
+      "community": 0,
+      "norm_label": "get_user_sales()"
+    },
+    {
+      "label": "debug.py",
+      "file_type": "code",
+      "source_file": "routes/debug.py",
+      "source_location": "L1",
+      "id": "routes_debug_py",
+      "community": 37,
+      "norm_label": "debug.py"
+    },
+    {
+      "label": "validate_ws_token()",
+      "file_type": "code",
+      "source_file": "routes/debug.py",
+      "source_location": "L15",
+      "id": "routes_debug_validate_ws_token",
+      "community": 37,
+      "norm_label": "validate_ws_token()"
+    },
+    {
+      "label": "websocket_endpoint()",
+      "file_type": "code",
+      "source_file": "routes/debug.py",
+      "source_location": "L30",
+      "id": "routes_debug_websocket_endpoint",
+      "community": 37,
+      "norm_label": "websocket_endpoint()"
+    },
+    {
+      "label": "Valida el token manualmente para WebSocket ya que no usan HTTPBearer standard",
+      "file_type": "rationale",
+      "source_file": "routes/debug.py",
+      "source_location": "L16",
+      "id": "routes_debug_rationale_16",
+      "community": 37,
+      "norm_label": "valida el token manualmente para websocket ya que no usan httpbearer standard"
+    },
+    {
+      "label": "static.py",
+      "file_type": "code",
+      "source_file": "routes/static.py",
+      "source_location": "L1",
+      "id": "routes_static_py",
+      "community": 20,
+      "norm_label": "static.py"
+    },
+    {
+      "label": "NoCacheStaticFiles",
+      "file_type": "code",
+      "source_file": "routes/static.py",
+      "source_location": "L9",
+      "id": "routes_static_nocachestaticfiles",
+      "community": 20,
+      "norm_label": "nocachestaticfiles"
+    },
+    {
+      "label": "StaticFiles",
+      "file_type": "code",
+      "source_file": "",
+      "source_location": "",
+      "id": "staticfiles",
+      "community": 20,
+      "norm_label": "staticfiles"
+    },
+    {
+      "label": ".get_response()",
+      "file_type": "code",
+      "source_file": "routes/static.py",
+      "source_location": "L12",
+      "id": "routes_static_nocachestaticfiles_get_response",
+      "community": 20,
+      "norm_label": ".get_response()"
+    },
+    {
+      "label": "serve_app_html()",
+      "file_type": "code",
+      "source_file": "routes/static.py",
+      "source_location": "L24",
+      "id": "routes_static_serve_app_html",
+      "community": 20,
+      "norm_label": "serve_app_html()"
+    },
+    {
+      "label": "serve_register_html()",
+      "file_type": "code",
+      "source_file": "routes/static.py",
+      "source_location": "L38",
+      "id": "routes_static_serve_register_html",
+      "community": 20,
+      "norm_label": "serve_register_html()"
+    },
+    {
+      "label": "mount_register_static_files()",
+      "file_type": "code",
+      "source_file": "routes/static.py",
+      "source_location": "L52",
+      "id": "routes_static_mount_register_static_files",
+      "community": 20,
+      "norm_label": "mount_register_static_files()"
+    },
+    {
+      "label": "mount_main_static_files()",
+      "file_type": "code",
+      "source_file": "routes/static.py",
+      "source_location": "L56",
+      "id": "routes_static_mount_main_static_files",
+      "community": 20,
+      "norm_label": "mount_main_static_files()"
+    },
+    {
+      "label": "serve_image()",
+      "file_type": "code",
+      "source_file": "routes/static.py",
+      "source_location": "L60",
+      "id": "routes_static_serve_image",
+      "community": 20,
+      "norm_label": "serve_image()"
+    },
+    {
+      "label": "StaticFiles que agrega headers para evitar cache",
+      "file_type": "rationale",
+      "source_file": "routes/static.py",
+      "source_location": "L10",
+      "id": "routes_static_rationale_10",
+      "community": 20,
+      "norm_label": "staticfiles que agrega headers para evitar cache"
+    },
+    {
+      "label": "Override para agregar headers de no-cache",
+      "file_type": "rationale",
+      "source_file": "routes/static.py",
+      "source_location": "L13",
+      "id": "routes_static_rationale_13",
+      "community": 20,
+      "norm_label": "override para agregar headers de no-cache"
+    },
+    {
+      "label": "Serve the main HTML file",
+      "file_type": "rationale",
+      "source_file": "routes/static.py",
+      "source_location": "L25",
+      "id": "routes_static_rationale_25",
+      "community": 20,
+      "norm_label": "serve the main html file"
+    },
+    {
+      "label": "Serve the register HTML file",
+      "file_type": "rationale",
+      "source_file": "routes/static.py",
+      "source_location": "L39",
+      "id": "routes_static_rationale_39",
+      "community": 20,
+      "norm_label": "serve the register html file"
+    },
+    {
+      "label": "Mount static files for the register page",
+      "file_type": "rationale",
+      "source_file": "routes/static.py",
+      "source_location": "L53",
+      "id": "routes_static_rationale_53",
+      "community": 20,
+      "norm_label": "mount static files for the register page"
+    },
+    {
+      "label": "Serve images from the public/images directory",
+      "file_type": "rationale",
+      "source_file": "routes/static.py",
+      "source_location": "L61",
+      "id": "routes_static_rationale_61",
+      "community": 20,
+      "norm_label": "serve images from the public/images directory"
+    },
+    {
+      "label": "orders.py",
+      "file_type": "code",
+      "source_file": "routes/orders.py",
+      "source_location": "L1",
+      "id": "routes_orders_py",
+      "community": 1,
+      "norm_label": "orders.py"
+    },
+    {
+      "label": "ComparePricesResponse",
+      "file_type": "code",
+      "source_file": "routes/orders.py",
+      "source_location": "L37",
+      "id": "routes_orders_comparepricesresponse",
+      "community": 1,
+      "norm_label": "comparepricesresponse"
+    },
+    {
+      "label": "compare_prices()",
+      "file_type": "code",
+      "source_file": "routes/orders.py",
+      "source_location": "L44",
+      "id": "routes_orders_compare_prices",
+      "community": 1,
+      "norm_label": "compare_prices()"
+    },
+    {
+      "label": "printer_order()",
+      "file_type": "code",
+      "source_file": "routes/orders.py",
+      "source_location": "L73",
+      "id": "routes_orders_printer_order",
+      "community": 1,
+      "norm_label": "printer_order()"
+    },
+    {
+      "label": "Compare prices of products and items and return the cheapest product",
+      "file_type": "rationale",
+      "source_file": "routes/orders.py",
+      "source_location": "L45",
+      "id": "routes_orders_rationale_45",
+      "community": 1,
+      "norm_label": "compare prices of products and items and return the cheapest product"
+    },
+    {
+      "label": "Process printer order",
+      "file_type": "rationale",
+      "source_file": "routes/orders.py",
+      "source_location": "L74",
+      "id": "routes_orders_rationale_74",
+      "community": 1,
+      "norm_label": "process printer order"
+    },
+    {
+      "label": "chat.py",
+      "file_type": "code",
+      "source_file": "routes/chat.py",
+      "source_location": "L1",
+      "id": "routes_chat_py",
+      "community": 6,
+      "norm_label": "chat.py"
+    },
+    {
+      "label": "chat_irc_endpoint()",
+      "file_type": "code",
+      "source_file": "routes/chat.py",
+      "source_location": "L23",
+      "id": "routes_chat_chat_irc_endpoint",
+      "community": 6,
+      "norm_label": "chat_irc_endpoint()"
+    },
+    {
+      "label": "notify_users()",
+      "file_type": "code",
+      "source_file": "routes/chat.py",
+      "source_location": "L143",
+      "id": "routes_chat_notify_users",
+      "community": 6,
+      "norm_label": "notify_users()"
+    },
+    {
+      "label": "get__connected_users()",
+      "file_type": "code",
+      "source_file": "routes/chat.py",
+      "source_location": "L163",
+      "id": "routes_chat_get_connected_users",
+      "community": 6,
+      "norm_label": "get__connected_users()"
+    },
+    {
+      "label": "get_online_user_count()",
+      "file_type": "code",
+      "source_file": "routes/chat.py",
+      "source_location": "L174",
+      "id": "routes_chat_get_online_user_count",
+      "community": 6,
+      "norm_label": "get_online_user_count()"
+    },
+    {
+      "label": "WebSocket endpoint for real-time chat interactions",
+      "file_type": "rationale",
+      "source_file": "routes/chat.py",
+      "source_location": "L24",
+      "id": "routes_chat_rationale_24",
+      "community": 6,
+      "norm_label": "websocket endpoint for real-time chat interactions"
+    },
+    {
+      "label": "Get a list of connected users (solo local al worker)",
+      "file_type": "rationale",
+      "source_file": "routes/chat.py",
+      "source_location": "L164",
+      "id": "routes_chat_rationale_164",
+      "community": 6,
+      "norm_label": "get a list of connected users (solo local al worker)"
+    },
+    {
+      "label": "Get the count of online users (solo local al worker)",
+      "file_type": "rationale",
+      "source_file": "routes/chat.py",
+      "source_location": "L175",
+      "id": "routes_chat_rationale_175",
+      "community": 6,
+      "norm_label": "get the count of online users (solo local al worker)"
+    },
+    {
+      "label": "users.py",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L1",
+      "id": "routes_users_py",
+      "community": 0,
+      "norm_label": "users.py"
+    },
+    {
+      "label": "exists_user()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L36",
+      "id": "routes_users_exists_user",
+      "community": 0,
+      "norm_label": "exists_user()"
+    },
+    {
+      "label": "register_user()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L45",
+      "id": "routes_users_register_user",
+      "community": 0,
+      "norm_label": "register_user()"
+    },
+    {
+      "label": "create_user()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L113",
+      "id": "routes_users_create_user",
+      "community": 0,
+      "norm_label": "create_user()"
+    },
+    {
+      "label": "force_register_user()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L142",
+      "id": "routes_users_force_register_user",
+      "community": 0,
+      "norm_label": "force_register_user()"
+    },
+    {
+      "label": "login_user()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L167",
+      "id": "routes_users_login_user",
+      "community": 0,
+      "norm_label": "login_user()"
+    },
+    {
+      "label": "guest_login()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L268",
+      "id": "routes_users_guest_login",
+      "community": 0,
+      "norm_label": "guest_login()"
+    },
+    {
+      "label": "delete_user()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L273",
+      "id": "routes_users_delete_user",
+      "community": 0,
+      "norm_label": "delete_user()"
+    },
+    {
+      "label": "change_pin()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L284",
+      "id": "routes_users_change_pin",
+      "community": 0,
+      "norm_label": "change_pin()"
+    },
+    {
+      "label": "reward_user()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L305",
+      "id": "routes_users_reward_user",
+      "community": 0,
+      "norm_label": "reward_user()"
+    },
+    {
+      "label": "get_cur_user()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L322",
+      "id": "routes_users_get_cur_user",
+      "community": 0,
+      "norm_label": "get_cur_user()"
+    },
+    {
+      "label": "get_all_users()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L327",
+      "id": "routes_users_get_all_users",
+      "community": 0,
+      "norm_label": "get_all_users()"
+    },
+    {
+      "label": "get_next_user_id()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L333",
+      "id": "routes_users_get_next_user_id",
+      "community": 0,
+      "norm_label": "get_next_user_id()"
+    },
+    {
+      "label": "verify_user()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L342",
+      "id": "routes_users_verify_user",
+      "community": 0,
+      "norm_label": "verify_user()"
+    },
+    {
+      "label": "pin_forgot_get()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L358",
+      "id": "routes_users_pin_forgot_get",
+      "community": 0,
+      "norm_label": "pin_forgot_get()"
+    },
+    {
+      "label": "pin_forgot_post()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L366",
+      "id": "routes_users_pin_forgot_post",
+      "community": 0,
+      "norm_label": "pin_forgot_post()"
+    },
+    {
+      "label": "pin_forgot_validate()",
+      "file_type": "code",
+      "source_file": "routes/users.py",
+      "source_location": "L384",
+      "id": "routes_users_pin_forgot_validate",
+      "community": 0,
+      "norm_label": "pin_forgot_validate()"
+    },
+    {
+      "label": "Create a new user with PIN",
+      "file_type": "rationale",
+      "source_file": "routes/users.py",
+      "source_location": "L114",
+      "id": "routes_users_rationale_114",
+      "community": 0,
+      "norm_label": "create a new user with pin"
+    },
+    {
+      "label": "Force register a new user",
+      "file_type": "rationale",
+      "source_file": "routes/users.py",
+      "source_location": "L143",
+      "id": "routes_users_rationale_143",
+      "community": 0,
+      "norm_label": "force register a new user"
+    },
+    {
+      "label": "Login user with email and PIN",
+      "file_type": "rationale",
+      "source_file": "routes/users.py",
+      "source_location": "L168",
+      "id": "routes_users_rationale_168",
+      "community": 0,
+      "norm_label": "login user with email and pin"
+    },
+    {
+      "label": "Reward a user with 1 free beer",
+      "file_type": "rationale",
+      "source_file": "routes/users.py",
+      "source_location": "L306",
+      "id": "routes_users_rationale_306",
+      "community": 0,
+      "norm_label": "reward a user with 1 free beer"
+    },
+    {
+      "label": "Get current user information",
+      "file_type": "rationale",
+      "source_file": "routes/users.py",
+      "source_location": "L323",
+      "id": "routes_users_rationale_323",
+      "community": 0,
+      "norm_label": "get current user information"
+    },
+    {
+      "label": "Render the PIN forgot page",
+      "file_type": "rationale",
+      "source_file": "routes/users.py",
+      "source_location": "L359",
+      "id": "routes_users_rationale_359",
+      "community": 0,
+      "norm_label": "render the pin forgot page"
+    },
+    {
+      "label": "Handle the PIN forgot form submission",
+      "file_type": "rationale",
+      "source_file": "routes/users.py",
+      "source_location": "L367",
+      "id": "routes_users_rationale_367",
+      "community": 0,
+      "norm_label": "handle the pin forgot form submission"
+    },
+    {
+      "label": "Validate the PIN recovery code",
+      "file_type": "rationale",
+      "source_file": "routes/users.py",
+      "source_location": "L385",
+      "id": "routes_users_rationale_385",
+      "community": 0,
+      "norm_label": "validate the pin recovery code"
+    },
+    {
+      "label": "__init__.py",
+      "file_type": "code",
+      "source_file": "routes/__init__.py",
+      "source_location": "L1",
+      "id": "routes_init_py",
+      "community": 48,
+      "norm_label": "__init__.py"
+    },
+    {
+      "label": "store.py",
+      "file_type": "code",
+      "source_file": "routes/store.py",
+      "source_location": "L1",
+      "id": "routes_store_py",
+      "community": 0,
+      "norm_label": "store.py"
+    },
+    {
+      "label": "AppStateBody",
+      "file_type": "code",
+      "source_file": "routes/store.py",
+      "source_location": "L14",
+      "id": "routes_store_appstatebody",
+      "community": 11,
+      "norm_label": "appstatebody"
+    },
+    {
+      "label": "set_store_state()",
+      "file_type": "code",
+      "source_file": "routes/store.py",
+      "source_location": "L18",
+      "id": "routes_store_set_store_state",
+      "community": 0,
+      "norm_label": "set_store_state()"
+    },
+    {
+      "label": "update_cache()",
+      "file_type": "code",
+      "source_file": "routes/store.py",
+      "source_location": "L25",
+      "id": "routes_store_update_cache",
+      "community": 0,
+      "norm_label": "update_cache()"
+    },
+    {
+      "label": "get_table_exists()",
+      "file_type": "code",
+      "source_file": "routes/store.py",
+      "source_location": "L32",
+      "id": "routes_store_get_table_exists",
+      "community": 0,
+      "norm_label": "get_table_exists()"
+    },
+    {
+      "label": "get_store_state()",
+      "file_type": "code",
+      "source_file": "routes/store.py",
+      "source_location": "L38",
+      "id": "routes_store_get_store_state",
+      "community": 0,
+      "norm_label": "get_store_state()"
+    },
+    {
+      "label": "toteat.py",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L1",
+      "id": "toteat_toteat_py",
+      "community": 4,
+      "norm_label": "toteat.py"
+    },
+    {
+      "label": "_auth_params()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L85",
+      "id": "toteat_toteat_auth_params",
+      "community": 4,
+      "norm_label": "_auth_params()"
+    },
+    {
+      "label": "_get()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L94",
+      "id": "toteat_toteat_get",
+      "community": 4,
+      "norm_label": "_get()"
+    },
+    {
+      "label": "_post()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L112",
+      "id": "toteat_toteat_post",
+      "community": 4,
+      "norm_label": "_post()"
+    },
+    {
+      "label": "_persist_table_order()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L130",
+      "id": "toteat_toteat_persist_table_order",
+      "community": 4,
+      "norm_label": "_persist_table_order()"
+    },
+    {
+      "label": "_load_table_order()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L142",
+      "id": "toteat_toteat_load_table_order",
+      "community": 4,
+      "norm_label": "_load_table_order()"
+    },
+    {
+      "label": "_clear_table_order()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L155",
+      "id": "toteat_toteat_clear_table_order",
+      "community": 4,
+      "norm_label": "_clear_table_order()"
+    },
+    {
+      "label": "_to_fudo_product()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L181",
+      "id": "toteat_toteat_to_fudo_product",
+      "community": 4,
+      "norm_label": "_to_fudo_product()"
+    },
+    {
+      "label": "get_token()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L232",
+      "id": "toteat_toteat_get_token",
+      "community": 4,
+      "norm_label": "get_token()"
+    },
+    {
+      "label": "clear_token()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L237",
+      "id": "toteat_toteat_clear_token",
+      "community": 4,
+      "norm_label": "clear_token()"
+    },
+    {
+      "label": "_fetch_menu()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L242",
+      "id": "toteat_toteat_fetch_menu",
+      "community": 4,
+      "norm_label": "_fetch_menu()"
+    },
+    {
+      "label": "get_modifiers()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L258",
+      "id": "toteat_toteat_get_modifiers",
+      "community": 4,
+      "norm_label": "get_modifiers()"
+    },
+    {
+      "label": "get_categories()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L266",
+      "id": "toteat_toteat_get_categories",
+      "community": 4,
+      "norm_label": "get_categories()"
+    },
+    {
+      "label": "get_category_dict()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L286",
+      "id": "toteat_toteat_get_category_dict",
+      "community": 4,
+      "norm_label": "get_category_dict()"
+    },
+    {
+      "label": "get_category()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L290",
+      "id": "toteat_toteat_get_category",
+      "community": 4,
+      "norm_label": "get_category()"
+    },
+    {
+      "label": "get_product()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L302",
+      "id": "toteat_toteat_get_product",
+      "community": 4,
+      "norm_label": "get_product()"
+    },
+    {
+      "label": "get_products()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L327",
+      "id": "toteat_toteat_get_products",
+      "community": 4,
+      "norm_label": "get_products()"
+    },
+    {
+      "label": "get_all_indexed_products()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L335",
+      "id": "toteat_toteat_get_all_indexed_products",
+      "community": 4,
+      "norm_label": "get_all_indexed_products()"
+    },
+    {
+      "label": "get_all_products()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L348",
+      "id": "toteat_toteat_get_all_products",
+      "community": 4,
+      "norm_label": "get_all_products()"
+    },
+    {
+      "label": "_fetch_tables()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L356",
+      "id": "toteat_toteat_fetch_tables",
+      "community": 4,
+      "norm_label": "_fetch_tables()"
+    },
+    {
+      "label": "_to_fudo_table()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L372",
+      "id": "toteat_toteat_to_fudo_table",
+      "community": 4,
+      "norm_label": "_to_fudo_table()"
+    },
+    {
+      "label": "_discover_open_order_for_table()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L418",
+      "id": "toteat_toteat_discover_open_order_for_table",
+      "community": 4,
+      "norm_label": "_discover_open_order_for_table()"
+    },
+    {
+      "label": "get_table()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L436",
+      "id": "toteat_toteat_get_table",
+      "community": 4,
+      "norm_label": "get_table()"
+    },
+    {
+      "label": "get_active_sale()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L449",
+      "id": "toteat_toteat_get_active_sale",
+      "community": 4,
+      "norm_label": "get_active_sale()"
+    },
+    {
+      "label": "get_sale()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L458",
+      "id": "toteat_toteat_get_sale",
+      "community": 4,
+      "norm_label": "get_sale()"
+    },
+    {
+      "label": "_table_id_for_pending()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L483",
+      "id": "toteat_toteat_table_id_for_pending",
+      "community": 4,
+      "norm_label": "_table_id_for_pending()"
+    },
+    {
+      "label": "create_sale()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L490",
+      "id": "toteat_toteat_create_sale",
+      "community": 4,
+      "norm_label": "create_sale()"
+    },
+    {
+      "label": "_build_line()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L520",
+      "id": "toteat_toteat_build_line",
+      "community": 4,
+      "norm_label": "_build_line()"
+    },
+    {
+      "label": "_post_order()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L530",
+      "id": "toteat_toteat_post_order",
+      "community": 4,
+      "norm_label": "_post_order()"
+    },
+    {
+      "label": "create_item()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L553",
+      "id": "toteat_toteat_create_item",
+      "community": 4,
+      "norm_label": "create_item()"
+    },
+    {
+      "label": "get_table_items()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L602",
+      "id": "toteat_toteat_get_table_items",
+      "community": 4,
+      "norm_label": "get_table_items()"
+    },
+    {
+      "label": "fetch_page()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L645",
+      "id": "toteat_toteat_fetch_page",
+      "community": 4,
+      "norm_label": "fetch_page()"
+    },
+    {
+      "label": "_smoke_tests()",
+      "file_type": "code",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L685",
+      "id": "toteat_toteat_smoke_tests",
+      "community": 4,
+      "norm_label": "_smoke_tests()"
+    },
+    {
+      "label": "Cliente para la API de Toteat POS.  Expone la misma superficie p\u00fablica que `fudo",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L1",
+      "id": "toteat_toteat_rationale_1",
+      "community": 4,
+      "norm_label": "cliente para la api de toteat pos.  expone la misma superficie publica que `fudo"
+    },
+    {
+      "label": "Toteat no usa OAuth; mantenemos la firma para compatibilidad.",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L233",
+      "id": "toteat_toteat_rationale_233",
+      "community": 4,
+      "norm_label": "toteat no usa oauth; mantenemos la firma para compatibilidad."
+    },
+    {
+      "label": "No-op para compatibilidad con fudo.fudo.clear_token.",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L238",
+      "id": "toteat_toteat_rationale_238",
+      "community": 4,
+      "norm_label": "no-op para compatibilidad con fudo.fudo.clear_token."
+    },
+    {
+      "label": "En Toteat los modificadores vienen embebidos en `/products`. Para     mantener c",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L259",
+      "id": "toteat_toteat_rationale_259",
+      "community": 4,
+      "norm_label": "en toteat los modificadores vienen embebidos en `/products`. para     mantener c"
+    },
+    {
+      "label": "Devuelve las categor\u00edas derivadas del men\u00fa de Toteat en forma JSON:API.",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L267",
+      "id": "toteat_toteat_rationale_267",
+      "community": 4,
+      "norm_label": "devuelve las categorias derivadas del menu de toteat en forma json:api."
+    },
+    {
+      "label": "Toteat no pagina /products; devolvemos todo en page=1 y vac\u00edo despu\u00e9s     para m",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L328",
+      "id": "toteat_toteat_rationale_328",
+      "community": 4,
+      "norm_label": "toteat no pagina /products; devolvemos todo en page=1 y vacio despues     para m"
+    },
+    {
+      "label": "Equivalente al m\u00e9todo async de Fudo. Como Toteat trae todo en una     sola reque",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L336",
+      "id": "toteat_toteat_rationale_336",
+      "community": 4,
+      "norm_label": "equivalente al metodo async de fudo. como toteat trae todo en una     sola reque"
+    },
+    {
+      "label": "Toteat /tables devuelve registros con campos como `tableId`, `name`,     `availa",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L373",
+      "id": "toteat_toteat_rationale_373",
+      "community": 4,
+      "norm_label": "toteat /tables devuelve registros con campos como `tableid`, `name`,     `availa"
+    },
+    {
+      "label": "Busca en Toteat \u00f3rdenes abiertas y filtra por tableId.",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L419",
+      "id": "toteat_toteat_rationale_419",
+      "community": 4,
+      "norm_label": "busca en toteat ordenes abiertas y filtra por tableid."
+    },
+    {
+      "label": "Equivalente a `fudo.create_sale`. No hace HTTP: registra una venta     pendiente",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L491",
+      "id": "toteat_toteat_rationale_491",
+      "community": 4,
+      "norm_label": "equivalente a `fudo.create_sale`. no hace http: registra una venta     pendiente"
+    },
+    {
+      "label": "Agrega un producto a una venta. Si la venta es pendiente (todav\u00eda no     existe",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L555",
+      "id": "toteat_toteat_rationale_555",
+      "community": 4,
+      "norm_label": "agrega un producto a una venta. si la venta es pendiente (todavia no     existe"
+    },
+    {
+      "label": "Equivalente a `fudo.get_table_items`. Resuelve la mesa, encuentra su     orden a",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L603",
+      "id": "toteat_toteat_rationale_603",
+      "community": 4,
+      "norm_label": "equivalente a `fudo.get_table_items`. resuelve la mesa, encuentra su     orden a"
+    },
+    {
+      "label": "Stub de paridad. Toteat no expone /products paginado; devolvemos     listas vac\u00ed",
+      "file_type": "rationale",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L647",
+      "id": "toteat_toteat_rationale_647",
+      "community": 4,
+      "norm_label": "stub de paridad. toteat no expone /products paginado; devolvemos     listas vaci"
+    },
+    {
+      "label": "__init__.py",
+      "file_type": "code",
+      "source_file": "toteat/__init__.py",
+      "source_location": "L1",
+      "id": "toteat_init_py",
+      "community": 49,
+      "norm_label": "__init__.py"
+    },
+    {
+      "label": "rut.py",
+      "file_type": "code",
+      "source_file": "utils/rut.py",
+      "source_location": "L1",
+      "id": "utils_rut_py",
+      "community": 0,
+      "norm_label": "rut.py"
+    },
+    {
+      "label": "validate_rut()",
+      "file_type": "code",
+      "source_file": "utils/rut.py",
+      "source_location": "L1",
+      "id": "utils_rut_validate_rut",
+      "community": 0,
+      "norm_label": "validate_rut()"
+    },
+    {
+      "label": "Validates a Chilean RUT (Rol \u00danico Tributario).          Args:         rut (str)",
+      "file_type": "rationale",
+      "source_file": "utils/rut.py",
+      "source_location": "L2",
+      "id": "utils_rut_rationale_2",
+      "community": 0,
+      "norm_label": "validates a chilean rut (rol unico tributario).          args:         rut (str)"
+    },
+    {
+      "label": "responses.py",
+      "file_type": "code",
+      "source_file": "utils/responses.py",
+      "source_location": "L1",
+      "id": "utils_responses_py",
+      "community": 0,
+      "norm_label": "responses.py"
+    },
+    {
+      "label": "success_response()",
+      "file_type": "code",
+      "source_file": "utils/responses.py",
+      "source_location": "L5",
+      "id": "utils_responses_success_response",
+      "community": 0,
+      "norm_label": "success_response()"
+    },
+    {
+      "label": "error_response()",
+      "file_type": "code",
+      "source_file": "utils/responses.py",
+      "source_location": "L13",
+      "id": "utils_responses_error_response",
+      "community": 0,
+      "norm_label": "error_response()"
+    },
+    {
+      "label": "app.js",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L1",
+      "id": "public_register_app_js",
+      "community": 23,
+      "norm_label": "app.js"
+    },
+    {
+      "label": "showErrorMessage()",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L1",
+      "id": "register_app_showerrormessage",
+      "community": 23,
+      "norm_label": "showerrormessage()"
+    },
+    {
+      "label": "showRegisterModal()",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L9",
+      "id": "register_app_showregistermodal",
+      "community": 23,
+      "norm_label": "showregistermodal()"
+    },
+    {
+      "label": "hideRegisterModal()",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L13",
+      "id": "register_app_hideregistermodal",
+      "community": 23,
+      "norm_label": "hideregistermodal()"
+    },
+    {
+      "label": "rut",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L19",
+      "id": "register_app_rut",
+      "community": 23,
+      "norm_label": "rut"
+    },
+    {
+      "label": "body",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L22",
+      "id": "register_app_body",
+      "community": 23,
+      "norm_label": "body"
+    },
+    {
+      "label": "dv",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L23",
+      "id": "register_app_dv",
+      "community": 23,
+      "norm_label": "dv"
+    },
+    {
+      "label": "formData",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L39",
+      "id": "register_app_formdata",
+      "community": 23,
+      "norm_label": "formdata"
+    },
+    {
+      "label": "data",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L40",
+      "id": "register_app_data",
+      "community": 23,
+      "norm_label": "data"
+    },
+    {
+      "label": "createGlobalLoader()",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L77",
+      "id": "register_app_creategloballoader",
+      "community": 23,
+      "norm_label": "creategloballoader()"
+    },
+    {
+      "label": "showGlobalLoader()",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L90",
+      "id": "register_app_showgloballoader",
+      "community": 23,
+      "norm_label": "showgloballoader()"
+    },
+    {
+      "label": "hideGlobalLoader()",
+      "file_type": "code",
+      "source_file": "public/register/app.js",
+      "source_location": "L96",
+      "id": "register_app_hidegloballoader",
+      "community": 23,
+      "norm_label": "hidegloballoader()"
+    },
+    {
+      "label": "index-LC7je4Q6.js",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L1",
+      "id": "public_main_assets_index_lc7je4q6_js",
+      "community": 2,
+      "norm_label": "index-lc7je4q6.js"
+    },
+    {
+      "label": "o()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L1",
+      "id": "assets_index_lc7je4q6_o",
+      "community": 10,
+      "norm_label": "o()"
+    },
+    {
+      "label": "r()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L1",
+      "id": "assets_index_lc7je4q6_r",
+      "community": 10,
+      "norm_label": "r()"
+    },
+    {
+      "label": "dh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L1",
+      "id": "assets_index_lc7je4q6_dh",
+      "community": 16,
+      "norm_label": "dh()"
+    },
+    {
+      "label": "zy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L9",
+      "id": "assets_index_lc7je4q6_zy",
+      "community": 24,
+      "norm_label": "zy()"
+    },
+    {
+      "label": "My()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L9",
+      "id": "assets_index_lc7je4q6_my",
+      "community": 24,
+      "norm_label": "my()"
+    },
+    {
+      "label": "Oy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "id": "assets_index_lc7je4q6_oy",
+      "community": 10,
+      "norm_label": "oy()"
+    },
+    {
+      "label": "Ry()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "id": "assets_index_lc7je4q6_ry",
+      "community": 10,
+      "norm_label": "ry()"
+    },
+    {
+      "label": "Dy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L25",
+      "id": "assets_index_lc7je4q6_dy",
+      "community": 10,
+      "norm_label": "dy()"
+    },
+    {
+      "label": "Oo()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L25",
+      "id": "assets_index_lc7je4q6_oo",
+      "community": 10,
+      "norm_label": "oo()"
+    },
+    {
+      "label": "By()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "id": "assets_index_lc7je4q6_by",
+      "community": 10,
+      "norm_label": "by()"
+    },
+    {
+      "label": "Uy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "id": "assets_index_lc7je4q6_uy",
+      "community": 10,
+      "norm_label": "uy()"
+    },
+    {
+      "label": "Ly()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L41",
+      "id": "assets_index_lc7je4q6_ly",
+      "community": 10,
+      "norm_label": "ly()"
+    },
+    {
+      "label": "Hy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "id": "assets_index_lc7je4q6_hy",
+      "community": 10,
+      "norm_label": "hy()"
+    },
+    {
+      "label": "qy",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "id": "assets_index_lc7je4q6_qy",
+      "community": 2,
+      "norm_label": "qy"
+    },
+    {
+      "label": "Be",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "id": "assets_index_lc7je4q6_be",
+      "community": 2,
+      "norm_label": "be"
+    },
+    {
+      "label": "qt()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "id": "assets_index_lc7je4q6_qt",
+      "community": 9,
+      "norm_label": "qt()"
+    },
+    {
+      "label": "hh",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "id": "assets_index_lc7je4q6_hh",
+      "community": 2,
+      "norm_label": "hh"
+    },
+    {
+      "label": "si()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "id": "assets_index_lc7je4q6_si",
+      "community": 9,
+      "norm_label": "si()"
+    },
+    {
+      "label": "Yy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "id": "assets_index_lc7je4q6_yy",
+      "community": 9,
+      "norm_label": "yy()"
+    },
+    {
+      "label": "Gy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_gy",
+      "community": 9,
+      "norm_label": "gy()"
+    },
+    {
+      "label": "Xy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_xy",
+      "community": 9,
+      "norm_label": "xy()"
+    },
+    {
+      "label": "pa()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_pa",
+      "community": 22,
+      "norm_label": "pa()"
+    },
+    {
+      "label": "Vy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_vy",
+      "community": 2,
+      "norm_label": "vy()"
+    },
+    {
+      "label": "Kt()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_kt",
+      "community": 3,
+      "norm_label": "kt()"
+    },
+    {
+      "label": "ph()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ph",
+      "community": 26,
+      "norm_label": "ph()"
+    },
+    {
+      "label": "yh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_yh",
+      "community": 24,
+      "norm_label": "yh()"
+    },
+    {
+      "label": "Ky()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ky",
+      "community": 24,
+      "norm_label": "ky()"
+    },
+    {
+      "label": "_t()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_t",
+      "community": 3,
+      "norm_label": "_t()"
+    },
+    {
+      "label": "yo()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_yo",
+      "community": 3,
+      "norm_label": "yo()"
+    },
+    {
+      "label": "gh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_gh",
+      "community": 16,
+      "norm_label": "gh()"
+    },
+    {
+      "label": "$y()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_y",
+      "community": 2,
+      "norm_label": "$y()"
+    },
+    {
+      "label": "Fy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_fy",
+      "community": 19,
+      "norm_label": "fy()"
+    },
+    {
+      "label": "Wy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_wy",
+      "community": 22,
+      "norm_label": "wy()"
+    },
+    {
+      "label": "Iy()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_iy",
+      "community": 22,
+      "norm_label": "iy()"
+    },
+    {
+      "label": "Py",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_py",
+      "community": 24,
+      "norm_label": "py"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_py_constructor",
+      "community": 24,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".get()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_py_get",
+      "community": 26,
+      "norm_label": ".get()"
+    },
+    {
+      "label": ".keys()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_py_keys",
+      "community": 24,
+      "norm_label": ".keys()"
+    },
+    {
+      "label": ".toJSON()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_py_tojson",
+      "community": 24,
+      "norm_label": ".tojson()"
+    },
+    {
+      "label": "vh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_vh",
+      "community": 22,
+      "norm_label": "vh()"
+    },
+    {
+      "label": "Im()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_im",
+      "community": 22,
+      "norm_label": "im()"
+    },
+    {
+      "label": "bo()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_bo",
+      "community": 22,
+      "norm_label": "bo()"
+    },
+    {
+      "label": "eg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_eg",
+      "community": 3,
+      "norm_label": "eg()"
+    },
+    {
+      "label": "tg",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_tg",
+      "community": 24,
+      "norm_label": "tg"
+    },
+    {
+      "label": "ag",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ag",
+      "community": 3,
+      "norm_label": "ag"
+    },
+    {
+      "label": "lg",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_lg",
+      "community": 2,
+      "norm_label": "lg"
+    },
+    {
+      "label": "ng",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ng",
+      "community": 3,
+      "norm_label": "ng"
+    },
+    {
+      "label": "sg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sg",
+      "community": 3,
+      "norm_label": "sg()"
+    },
+    {
+      "label": "Ro",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro",
+      "community": 3,
+      "norm_label": "ro"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_constructor",
+      "community": 3,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".setSources()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_setsources",
+      "community": 3,
+      "norm_label": ".setsources()"
+    },
+    {
+      "label": ".setIndexRecords()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_setindexrecords",
+      "community": 3,
+      "norm_label": ".setindexrecords()"
+    },
+    {
+      "label": ".setKeys()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_setkeys",
+      "community": 3,
+      "norm_label": ".setkeys()"
+    },
+    {
+      "label": ".create()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_create",
+      "community": 3,
+      "norm_label": ".create()"
+    },
+    {
+      "label": ".add()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_add",
+      "community": 3,
+      "norm_label": ".add()"
+    },
+    {
+      "label": ".removeAt()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_removeat",
+      "community": 3,
+      "norm_label": ".removeat()"
+    },
+    {
+      "label": ".getValueForItemAtKeyId()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_getvalueforitematkeyid",
+      "community": 3,
+      "norm_label": ".getvalueforitematkeyid()"
+    },
+    {
+      "label": ".size()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_size",
+      "community": 3,
+      "norm_label": ".size()"
+    },
+    {
+      "label": "._addString()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_addstring",
+      "community": 3,
+      "norm_label": "._addstring()"
+    },
+    {
+      "label": "._addObject()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_addobject",
+      "community": 3,
+      "norm_label": "._addobject()"
+    },
+    {
+      "label": ".toJSON()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ro_tojson",
+      "community": 3,
+      "norm_label": ".tojson()"
+    },
+    {
+      "label": "xh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_xh",
+      "community": 3,
+      "norm_label": "xh()"
+    },
+    {
+      "label": "ug()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ug",
+      "community": 3,
+      "norm_label": "ug()"
+    },
+    {
+      "label": "Ms()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ms",
+      "community": 19,
+      "norm_label": "ms()"
+    },
+    {
+      "label": "rg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_rg",
+      "community": 19,
+      "norm_label": "rg()"
+    },
+    {
+      "label": "og()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_og",
+      "community": 19,
+      "norm_label": "og()"
+    },
+    {
+      "label": "cg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_cg",
+      "community": 2,
+      "norm_label": "cg()"
+    },
+    {
+      "label": "bh",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_bh",
+      "community": 10,
+      "norm_label": "bh"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_bh_constructor",
+      "community": 10,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".searchIn()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_bh_searchin",
+      "community": 10,
+      "norm_label": ".searchin()"
+    },
+    {
+      "label": "Va",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_va",
+      "community": 27,
+      "norm_label": "va"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_va_constructor",
+      "community": 27,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".isMultiMatch()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_va_ismultimatch",
+      "community": 27,
+      "norm_label": ".ismultimatch()"
+    },
+    {
+      "label": ".isSingleMatch()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_va_issinglematch",
+      "community": 27,
+      "norm_label": ".issinglematch()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_va_search",
+      "community": 27,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "Pm()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_pm",
+      "community": 27,
+      "norm_label": "pm()"
+    },
+    {
+      "label": "fg",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_fg",
+      "community": 28,
+      "norm_label": "fg"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_fg_constructor",
+      "community": 28,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".type()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_fg_type",
+      "community": 28,
+      "norm_label": ".type()"
+    },
+    {
+      "label": ".multiRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_fg_multiregex",
+      "community": 28,
+      "norm_label": ".multiregex()"
+    },
+    {
+      "label": ".singleRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_fg_singleregex",
+      "community": 28,
+      "norm_label": ".singleregex()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_fg_search",
+      "community": 28,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "dg",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_dg",
+      "community": 19,
+      "norm_label": "dg"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_dg_constructor",
+      "community": 19,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".type()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_dg_type",
+      "community": 19,
+      "norm_label": ".type()"
+    },
+    {
+      "label": ".multiRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_dg_multiregex",
+      "community": 19,
+      "norm_label": ".multiregex()"
+    },
+    {
+      "label": ".singleRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_dg_singleregex",
+      "community": 19,
+      "norm_label": ".singleregex()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_dg_search",
+      "community": 19,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "mg",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_mg",
+      "community": 29,
+      "norm_label": "mg"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_mg_constructor",
+      "community": 29,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".type()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_mg_type",
+      "community": 29,
+      "norm_label": ".type()"
+    },
+    {
+      "label": ".multiRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_mg_multiregex",
+      "community": 29,
+      "norm_label": ".multiregex()"
+    },
+    {
+      "label": ".singleRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_mg_singleregex",
+      "community": 29,
+      "norm_label": ".singleregex()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_mg_search",
+      "community": 29,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "hg",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_hg",
+      "community": 30,
+      "norm_label": "hg"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_hg_constructor",
+      "community": 30,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".type()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_hg_type",
+      "community": 30,
+      "norm_label": ".type()"
+    },
+    {
+      "label": ".multiRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_hg_multiregex",
+      "community": 30,
+      "norm_label": ".multiregex()"
+    },
+    {
+      "label": ".singleRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_hg_singleregex",
+      "community": 30,
+      "norm_label": ".singleregex()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_hg_search",
+      "community": 30,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "pg",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_pg",
+      "community": 31,
+      "norm_label": "pg"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_pg_constructor",
+      "community": 31,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".type()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_pg_type",
+      "community": 31,
+      "norm_label": ".type()"
+    },
+    {
+      "label": ".multiRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_pg_multiregex",
+      "community": 31,
+      "norm_label": ".multiregex()"
+    },
+    {
+      "label": ".singleRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_pg_singleregex",
+      "community": 31,
+      "norm_label": ".singleregex()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_pg_search",
+      "community": 31,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "yg",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_yg",
+      "community": 3,
+      "norm_label": "yg"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_yg_constructor",
+      "community": 3,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".type()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_yg_type",
+      "community": 3,
+      "norm_label": ".type()"
+    },
+    {
+      "label": ".multiRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_yg_multiregex",
+      "community": 3,
+      "norm_label": ".multiregex()"
+    },
+    {
+      "label": ".singleRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_yg_singleregex",
+      "community": 3,
+      "norm_label": ".singleregex()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_yg_search",
+      "community": 3,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "Sh",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sh",
+      "community": 3,
+      "norm_label": "sh"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sh_constructor",
+      "community": 3,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".type()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sh_type",
+      "community": 3,
+      "norm_label": ".type()"
+    },
+    {
+      "label": ".multiRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sh_multiregex",
+      "community": 3,
+      "norm_label": ".multiregex()"
+    },
+    {
+      "label": ".singleRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sh_singleregex",
+      "community": 3,
+      "norm_label": ".singleregex()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sh_search",
+      "community": 3,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "Eh",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_eh",
+      "community": 32,
+      "norm_label": "eh"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_eh_constructor",
+      "community": 32,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".type()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_eh_type",
+      "community": 32,
+      "norm_label": ".type()"
+    },
+    {
+      "label": ".multiRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_eh_multiregex",
+      "community": 32,
+      "norm_label": ".multiregex()"
+    },
+    {
+      "label": ".singleRegex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_eh_singleregex",
+      "community": 32,
+      "norm_label": ".singleregex()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_eh_search",
+      "community": 32,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "So",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_so",
+      "community": 2,
+      "norm_label": "so"
+    },
+    {
+      "label": "xg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_xg",
+      "community": 3,
+      "norm_label": "xg()"
+    },
+    {
+      "label": "bg",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_bg",
+      "community": 19,
+      "norm_label": "bg"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sg_constructor",
+      "community": 3,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".condition()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sg_condition",
+      "community": 3,
+      "norm_label": ".condition()"
+    },
+    {
+      "label": ".searchIn()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_sg_searchin",
+      "community": 3,
+      "norm_label": ".searchin()"
+    },
+    {
+      "label": "Eo",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_eo",
+      "community": 2,
+      "norm_label": "eo"
+    },
+    {
+      "label": "Hs",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_hs",
+      "community": 2,
+      "norm_label": "hs"
+    },
+    {
+      "label": "To",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_to",
+      "community": 2,
+      "norm_label": "to"
+    },
+    {
+      "label": "No()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_no",
+      "community": 24,
+      "norm_label": "no()"
+    },
+    {
+      "label": "_g()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_g",
+      "community": 2,
+      "norm_label": "_g()"
+    },
+    {
+      "label": "th()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_th",
+      "community": 24,
+      "norm_label": "th()"
+    },
+    {
+      "label": "_h()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_h",
+      "community": 24,
+      "norm_label": "_h()"
+    },
+    {
+      "label": "jg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_jg",
+      "community": 3,
+      "norm_label": "jg()"
+    },
+    {
+      "label": "an",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an",
+      "community": 3,
+      "norm_label": "an"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_constructor",
+      "community": 3,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".setCollection()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_setcollection",
+      "community": 3,
+      "norm_label": ".setcollection()"
+    },
+    {
+      "label": ".add()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_add",
+      "community": 3,
+      "norm_label": ".add()"
+    },
+    {
+      "label": ".remove()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_remove",
+      "community": 3,
+      "norm_label": ".remove()"
+    },
+    {
+      "label": ".removeAt()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_removeat",
+      "community": 3,
+      "norm_label": ".removeat()"
+    },
+    {
+      "label": ".getIndex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_getindex",
+      "community": 3,
+      "norm_label": ".getindex()"
+    },
+    {
+      "label": ".search()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_search",
+      "community": 3,
+      "norm_label": ".search()"
+    },
+    {
+      "label": "._searchStringList()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_searchstringlist",
+      "community": 3,
+      "norm_label": "._searchstringlist()"
+    },
+    {
+      "label": "._searchLogical()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_searchlogical",
+      "community": 3,
+      "norm_label": "._searchlogical()"
+    },
+    {
+      "label": "._searchObjectList()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_searchobjectlist",
+      "community": 3,
+      "norm_label": "._searchobjectlist()"
+    },
+    {
+      "label": "._findMatches()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_an_findmatches",
+      "community": 3,
+      "norm_label": "._findmatches()"
+    },
+    {
+      "label": "wg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_wg",
+      "community": 9,
+      "norm_label": "wg()"
+    },
+    {
+      "label": "Za()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_za",
+      "community": 19,
+      "norm_label": "za()"
+    },
+    {
+      "label": "zg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_zg",
+      "community": 16,
+      "norm_label": "zg()"
+    },
+    {
+      "label": "ln()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ln",
+      "community": 19,
+      "norm_label": "ln()"
+    },
+    {
+      "label": "Nh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_nh",
+      "community": 19,
+      "norm_label": "nh()"
+    },
+    {
+      "label": "jh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_jh",
+      "community": 19,
+      "norm_label": "jh()"
+    },
+    {
+      "label": "Ch",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ch",
+      "community": 2,
+      "norm_label": "ch"
+    },
+    {
+      "label": "Tt()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_tt",
+      "community": 9,
+      "norm_label": "tt()"
+    },
+    {
+      "label": "li",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_li",
+      "community": 2,
+      "norm_label": "li"
+    },
+    {
+      "label": "Os",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_os",
+      "community": 10,
+      "norm_label": "os"
+    },
+    {
+      "label": "kg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_kg",
+      "community": 2,
+      "norm_label": "kg()"
+    },
+    {
+      "label": "Ah",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ah",
+      "community": 2,
+      "norm_label": "ah"
+    },
+    {
+      "label": "qg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_qg",
+      "community": 21,
+      "norm_label": "qg()"
+    },
+    {
+      "label": "ui()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "id": "assets_index_lc7je4q6_ui",
+      "community": 9,
+      "norm_label": "ui()"
+    },
+    {
+      "label": "Le()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_le",
+      "community": 21,
+      "norm_label": "le()"
+    },
+    {
+      "label": "Yt()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_yt",
+      "community": 16,
+      "norm_label": "yt()"
+    },
+    {
+      "label": "Gg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_gg",
+      "community": 10,
+      "norm_label": "gg()"
+    },
+    {
+      "label": "lh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_lh",
+      "community": 2,
+      "norm_label": "lh()"
+    },
+    {
+      "label": "jo()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_jo",
+      "community": 10,
+      "norm_label": "jo()"
+    },
+    {
+      "label": "ni()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_ni",
+      "community": 21,
+      "norm_label": "ni()"
+    },
+    {
+      "label": "nn()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_nn",
+      "community": 16,
+      "norm_label": "nn()"
+    },
+    {
+      "label": "wh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_wh",
+      "community": 16,
+      "norm_label": "wh()"
+    },
+    {
+      "label": "Vg()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_vg",
+      "community": 16,
+      "norm_label": "vg()"
+    },
+    {
+      "label": "zh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_zh",
+      "community": 22,
+      "norm_label": "zh()"
+    },
+    {
+      "label": "Mh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_mh",
+      "community": 16,
+      "norm_label": "mh()"
+    },
+    {
+      "label": "ev()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_ev",
+      "community": 9,
+      "norm_label": "ev()"
+    },
+    {
+      "label": "tv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_tv",
+      "community": 21,
+      "norm_label": "tv()"
+    },
+    {
+      "label": "ks()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_ks",
+      "community": 21,
+      "norm_label": "ks()"
+    },
+    {
+      "label": "av()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_av",
+      "community": 16,
+      "norm_label": "av()"
+    },
+    {
+      "label": "lv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_lv",
+      "community": 16,
+      "norm_label": "lv()"
+    },
+    {
+      "label": "ya()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_ya",
+      "community": 25,
+      "norm_label": "ya()"
+    },
+    {
+      "label": "iv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_iv",
+      "community": 16,
+      "norm_label": "iv()"
+    },
+    {
+      "label": "ih()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_ih",
+      "community": 16,
+      "norm_label": "ih()"
+    },
+    {
+      "label": "go()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_go",
+      "community": 16,
+      "norm_label": "go()"
+    },
+    {
+      "label": "sv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_sv",
+      "community": 9,
+      "norm_label": "sv()"
+    },
+    {
+      "label": "Rh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_rh",
+      "community": 9,
+      "norm_label": "rh()"
+    },
+    {
+      "label": "constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_constructor",
+      "community": 2,
+      "norm_label": "constructor()"
+    },
+    {
+      "label": "fv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_fv",
+      "community": 21,
+      "norm_label": "fv()"
+    },
+    {
+      "label": "dv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_dv",
+      "community": 21,
+      "norm_label": "dv()"
+    },
+    {
+      "label": "Uh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_uh",
+      "community": 25,
+      "norm_label": "uh()"
+    },
+    {
+      "label": "xv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_xv",
+      "community": 25,
+      "norm_label": "xv()"
+    },
+    {
+      "label": "bv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_bv",
+      "community": 2,
+      "norm_label": "bv()"
+    },
+    {
+      "label": "oi()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_oi",
+      "community": 9,
+      "norm_label": "oi()"
+    },
+    {
+      "label": "Ka()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_ka",
+      "community": 9,
+      "norm_label": "ka()"
+    },
+    {
+      "label": "Ja()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_ja",
+      "community": 9,
+      "norm_label": "ja()"
+    },
+    {
+      "label": "ci()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_ci",
+      "community": 9,
+      "norm_label": "ci()"
+    },
+    {
+      "label": "_v()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "id": "assets_index_lc7je4q6_v",
+      "community": 16,
+      "norm_label": "_v()"
+    },
+    {
+      "label": "getDerivedStateFromError()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_getderivedstatefromerror",
+      "community": 2,
+      "norm_label": "getderivedstatefromerror()"
+    },
+    {
+      "label": "getDerivedStateFromProps()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_getderivedstatefromprops",
+      "community": 2,
+      "norm_label": "getderivedstatefromprops()"
+    },
+    {
+      "label": "componentDidCatch()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_componentdidcatch",
+      "community": 18,
+      "norm_label": "componentdidcatch()"
+    },
+    {
+      "label": "render()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_render",
+      "community": 2,
+      "norm_label": "render()"
+    },
+    {
+      "label": "jv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_jv",
+      "community": 25,
+      "norm_label": "jv()"
+    },
+    {
+      "label": "Cv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_cv",
+      "community": 2,
+      "norm_label": "cv()"
+    },
+    {
+      "label": "wv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_wv",
+      "community": 21,
+      "norm_label": "wv()"
+    },
+    {
+      "label": "zv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_zv",
+      "community": 21,
+      "norm_label": "zv()"
+    },
+    {
+      "label": "Mv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_mv",
+      "community": 21,
+      "norm_label": "mv()"
+    },
+    {
+      "label": "Uo()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_uo",
+      "community": 21,
+      "norm_label": "uo()"
+    },
+    {
+      "label": "Ov()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_ov",
+      "community": 26,
+      "norm_label": "ov()"
+    },
+    {
+      "label": "Rv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_rv",
+      "community": 21,
+      "norm_label": "rv()"
+    },
+    {
+      "label": "Qh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_qh",
+      "community": 16,
+      "norm_label": "qh()"
+    },
+    {
+      "label": "Uv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_uv",
+      "community": 21,
+      "norm_label": "uv()"
+    },
+    {
+      "label": "Co()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_co",
+      "community": 16,
+      "norm_label": "co()"
+    },
+    {
+      "label": "Ys()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_ys",
+      "community": 25,
+      "norm_label": "ys()"
+    },
+    {
+      "label": "Hv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_hv",
+      "community": 25,
+      "norm_label": "hv()"
+    },
+    {
+      "label": "kv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_kv",
+      "community": 25,
+      "norm_label": "kv()"
+    },
+    {
+      "label": "qv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_qv",
+      "community": 25,
+      "norm_label": "qv()"
+    },
+    {
+      "label": "Yv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_yv",
+      "community": 2,
+      "norm_label": "yv()"
+    },
+    {
+      "label": "Gv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_gv",
+      "community": 2,
+      "norm_label": "gv()"
+    },
+    {
+      "label": "xo()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_xo",
+      "community": 25,
+      "norm_label": "xo()"
+    },
+    {
+      "label": "Vv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_vv",
+      "community": 25,
+      "norm_label": "vv()"
+    },
+    {
+      "label": "Lo()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_lo",
+      "community": 22,
+      "norm_label": "lo()"
+    },
+    {
+      "label": "Pv()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_pv",
+      "community": 16,
+      "norm_label": "pv()"
+    },
+    {
+      "label": "ex()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_ex",
+      "community": 22,
+      "norm_label": "ex()"
+    },
+    {
+      "label": "tx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_tx",
+      "community": 2,
+      "norm_label": "tx()"
+    },
+    {
+      "label": "ai()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_ai",
+      "community": 2,
+      "norm_label": "ai()"
+    },
+    {
+      "label": "ax()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_ax",
+      "community": 22,
+      "norm_label": "ax()"
+    },
+    {
+      "label": "lx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_lx",
+      "community": 22,
+      "norm_label": "lx()"
+    },
+    {
+      "label": "nx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_nx",
+      "community": 22,
+      "norm_label": "nx()"
+    },
+    {
+      "label": "ix()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_ix",
+      "community": 9,
+      "norm_label": "ix()"
+    },
+    {
+      "label": "ux()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_ux",
+      "community": 26,
+      "norm_label": "ux()"
+    },
+    {
+      "label": "{basename:D,unstable_useTransitions:X}",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_basename_d_unstable_usetransitions_x",
+      "community": 2,
+      "norm_label": "{basename:d,unstable_usetransitions:x}"
+    },
+    {
+      "label": "k",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_k",
+      "community": 10,
+      "norm_label": "k"
+    },
+    {
+      "label": "M",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_m",
+      "community": 10,
+      "norm_label": "m"
+    },
+    {
+      "label": "[U,Z,K]",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_u_z_k",
+      "community": 2,
+      "norm_label": "[u,z,k]"
+    },
+    {
+      "label": "F()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_f",
+      "community": 10,
+      "norm_label": "f()"
+    },
+    {
+      "label": "te",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_te",
+      "community": 10,
+      "norm_label": "te"
+    },
+    {
+      "label": "b",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_b",
+      "community": 10,
+      "norm_label": "b"
+    },
+    {
+      "label": "j",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_j",
+      "community": 2,
+      "norm_label": "j"
+    },
+    {
+      "label": "z",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_z",
+      "community": 2,
+      "norm_label": "z"
+    },
+    {
+      "label": "{navigator:q,basename:D}",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_navigator_q_basename_d",
+      "community": 2,
+      "norm_label": "{navigator:q,basename:d}"
+    },
+    {
+      "label": "{unstable_useTransitions:D}",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_unstable_usetransitions_d",
+      "community": 2,
+      "norm_label": "{unstable_usetransitions:d}"
+    },
+    {
+      "label": "X",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_x",
+      "community": 10,
+      "norm_label": "x"
+    },
+    {
+      "label": "U()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_u",
+      "community": 10,
+      "norm_label": "u()"
+    },
+    {
+      "label": "cx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_cx",
+      "community": 19,
+      "norm_label": "cx()"
+    },
+    {
+      "label": "fx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_fx",
+      "community": 9,
+      "norm_label": "fx()"
+    },
+    {
+      "label": "hx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_hx",
+      "community": 26,
+      "norm_label": "hx()"
+    },
+    {
+      "label": "px()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_px",
+      "community": 9,
+      "norm_label": "px()"
+    },
+    {
+      "label": "yx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_yx",
+      "community": 21,
+      "norm_label": "yx()"
+    },
+    {
+      "label": "pl()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_pl",
+      "community": 10,
+      "norm_label": "pl()"
+    },
+    {
+      "label": "gx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "id": "assets_index_lc7je4q6_gx",
+      "community": 2,
+      "norm_label": "gx()"
+    },
+    {
+      "label": "bx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_bx",
+      "community": 2,
+      "norm_label": "bx()"
+    },
+    {
+      "label": "Sx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_sx",
+      "community": 2,
+      "norm_label": "sx()"
+    },
+    {
+      "label": "Fh()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_fh",
+      "community": 9,
+      "norm_label": "fh()"
+    },
+    {
+      "label": "wx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_wx",
+      "community": 26,
+      "norm_label": "wx()"
+    },
+    {
+      "label": "e0()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_e0",
+      "community": 16,
+      "norm_label": "e0()"
+    },
+    {
+      "label": "Mx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_mx",
+      "community": 26,
+      "norm_label": "mx()"
+    },
+    {
+      "label": "t0()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_t0",
+      "community": 2,
+      "norm_label": "t0()"
+    },
+    {
+      "label": "Ox()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_ox",
+      "community": 22,
+      "norm_label": "ox()"
+    },
+    {
+      "label": "Rx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_rx",
+      "community": 3,
+      "norm_label": "rx()"
+    },
+    {
+      "label": "Dx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_dx",
+      "community": 16,
+      "norm_label": "dx()"
+    },
+    {
+      "label": "di()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_di",
+      "community": 16,
+      "norm_label": "di()"
+    },
+    {
+      "label": "Gs()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_gs",
+      "community": 16,
+      "norm_label": "gs()"
+    },
+    {
+      "label": "Xs()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_xs",
+      "community": 2,
+      "norm_label": "xs()"
+    },
+    {
+      "label": "oe()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_oe",
+      "community": 16,
+      "norm_label": "oe()"
+    },
+    {
+      "label": "qx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_qx",
+      "community": 2,
+      "norm_label": "qx()"
+    },
+    {
+      "label": "Xx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_xx",
+      "community": 2,
+      "norm_label": "xx()"
+    },
+    {
+      "label": "Zx()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_zx",
+      "community": 10,
+      "norm_label": "zx()"
+    },
+    {
+      "label": "{isRunning:u,preventExitTransition:o,toastRef:r,eventHandlers:d,playToast:m}",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_isrunning_u_preventexittransition_o_toastref_r_eventhandlers_d_playtoast_m",
+      "community": 2,
+      "norm_label": "{isrunning:u,preventexittransition:o,toastref:r,eventhandlers:d,playtoast:m}"
+    },
+    {
+      "label": "Me",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_me",
+      "community": 10,
+      "norm_label": "me"
+    },
+    {
+      "label": "$",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6",
+      "community": 10,
+      "norm_label": "$"
+    },
+    {
+      "label": "a0",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_a0",
+      "community": 2,
+      "norm_label": "a0"
+    },
+    {
+      "label": "gl()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_gl",
+      "community": 9,
+      "norm_label": "gl()"
+    },
+    {
+      "label": "eb",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb",
+      "community": 18,
+      "norm_label": "eb"
+    },
+    {
+      "label": ".constructor()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_constructor",
+      "community": 18,
+      "norm_label": ".constructor()"
+    },
+    {
+      "label": ".connect()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_connect",
+      "community": 18,
+      "norm_label": ".connect()"
+    },
+    {
+      "label": ".send()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_send",
+      "community": 18,
+      "norm_label": ".send()"
+    },
+    {
+      "label": ".join()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_join",
+      "community": 16,
+      "norm_label": ".join()"
+    },
+    {
+      "label": ".sendMessage()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_sendmessage",
+      "community": 18,
+      "norm_label": ".sendmessage()"
+    },
+    {
+      "label": ".sendAiMessage()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_sendaimessage",
+      "community": 18,
+      "norm_label": ".sendaimessage()"
+    },
+    {
+      "label": ".sendMention()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_sendmention",
+      "community": 18,
+      "norm_label": ".sendmention()"
+    },
+    {
+      "label": ".leave()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_leave",
+      "community": 18,
+      "norm_label": ".leave()"
+    },
+    {
+      "label": ".disconnect()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_disconnect",
+      "community": 18,
+      "norm_label": ".disconnect()"
+    },
+    {
+      "label": ".onMessage()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_onmessage",
+      "community": 18,
+      "norm_label": ".onmessage()"
+    },
+    {
+      "label": ".onError()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_onerror",
+      "community": 18,
+      "norm_label": ".onerror()"
+    },
+    {
+      "label": ".onClose()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_onclose",
+      "community": 18,
+      "norm_label": ".onclose()"
+    },
+    {
+      "label": ".onMention()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_onmention",
+      "community": 18,
+      "norm_label": ".onmention()"
+    },
+    {
+      "label": ".getConnectedUsers()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_getconnectedusers",
+      "community": 18,
+      "norm_label": ".getconnectedusers()"
+    },
+    {
+      "label": ".getOnlineCount()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_getonlinecount",
+      "community": 18,
+      "norm_label": ".getonlinecount()"
+    },
+    {
+      "label": ".mention()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_eb_mention",
+      "community": 18,
+      "norm_label": ".mention()"
+    },
+    {
+      "label": "at",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_at",
+      "community": 2,
+      "norm_label": "at"
+    },
+    {
+      "label": "l0",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_l0",
+      "community": 2,
+      "norm_label": "l0"
+    },
+    {
+      "label": "tb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_tb",
+      "community": 2,
+      "norm_label": "tb()"
+    },
+    {
+      "label": "ab()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_ab",
+      "community": 9,
+      "norm_label": "ab()"
+    },
+    {
+      "label": "lb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_lb",
+      "community": 2,
+      "norm_label": "lb()"
+    },
+    {
+      "label": "nb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_nb",
+      "community": 2,
+      "norm_label": "nb()"
+    },
+    {
+      "label": "ib()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_ib",
+      "community": 2,
+      "norm_label": "ib()"
+    },
+    {
+      "label": "sb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_sb",
+      "community": 9,
+      "norm_label": "sb()"
+    },
+    {
+      "label": "ub()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_ub",
+      "community": 9,
+      "norm_label": "ub()"
+    },
+    {
+      "label": "cb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_cb",
+      "community": 26,
+      "norm_label": "cb()"
+    },
+    {
+      "label": "n0()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_n0",
+      "community": 26,
+      "norm_label": "n0()"
+    },
+    {
+      "label": "fb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_fb",
+      "community": 2,
+      "norm_label": "fb()"
+    },
+    {
+      "label": "db()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_db",
+      "community": 9,
+      "norm_label": "db()"
+    },
+    {
+      "label": "mb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_mb",
+      "community": 9,
+      "norm_label": "mb()"
+    },
+    {
+      "label": "hb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_hb",
+      "community": 2,
+      "norm_label": "hb()"
+    },
+    {
+      "label": "pb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_pb",
+      "community": 2,
+      "norm_label": "pb()"
+    },
+    {
+      "label": "yb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_yb",
+      "community": 9,
+      "norm_label": "yb()"
+    },
+    {
+      "label": "i0()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_i0",
+      "community": 2,
+      "norm_label": "i0()"
+    },
+    {
+      "label": "gb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_gb",
+      "community": 9,
+      "norm_label": "gb()"
+    },
+    {
+      "label": "vb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_vb",
+      "community": 2,
+      "norm_label": "vb()"
+    },
+    {
+      "label": "xb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_xb",
+      "community": 9,
+      "norm_label": "xb()"
+    },
+    {
+      "label": "bb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_bb",
+      "community": 9,
+      "norm_label": "bb()"
+    },
+    {
+      "label": "jb()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_jb",
+      "community": 2,
+      "norm_label": "jb()"
+    },
+    {
+      "label": "Ds()",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_ds",
+      "community": 9,
+      "norm_label": "ds()"
+    },
+    {
+      "label": "s0",
+      "file_type": "code",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "id": "assets_index_lc7je4q6_s0",
+      "community": 2,
+      "norm_label": "s0"
+    },
+    {
+      "label": "in_time.py",
+      "file_type": "code",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L1",
+      "id": "middleware_in_time_py",
+      "community": 6,
+      "norm_label": "in_time.py"
+    },
+    {
+      "label": "EmptyUser",
+      "file_type": "code",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L19",
+      "id": "middleware_in_time_emptyuser",
+      "community": 6,
+      "norm_label": "emptyuser"
+    },
+    {
+      "label": ".__init__()",
+      "file_type": "code",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L20",
+      "id": "middleware_in_time_emptyuser_init",
+      "community": 6,
+      "norm_label": ".__init__()"
+    },
+    {
+      "label": "InTimeMiddleware",
+      "file_type": "code",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L23",
+      "id": "middleware_in_time_intimemiddleware",
+      "community": 6,
+      "norm_label": "intimemiddleware"
+    },
+    {
+      "label": "BaseHTTPMiddleware",
+      "file_type": "code",
+      "source_file": "",
+      "source_location": "",
+      "id": "basehttpmiddleware",
+      "community": 6,
+      "norm_label": "basehttpmiddleware"
+    },
+    {
+      "label": ".dispatch()",
+      "file_type": "code",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L29",
+      "id": "middleware_in_time_intimemiddleware_dispatch",
+      "community": 6,
+      "norm_label": ".dispatch()"
+    },
+    {
+      "label": "Middleware para agregar headers de no-cache a las respuestas",
+      "file_type": "rationale",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L1",
+      "id": "middleware_in_time_rationale_1",
+      "community": 6,
+      "norm_label": "middleware para agregar headers de no-cache a las respuestas"
+    },
+    {
+      "label": "Middleware que revisa si la peticion se hizo dentro del horario de funcionamient",
+      "file_type": "rationale",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L24",
+      "id": "middleware_in_time_rationale_24",
+      "community": 6,
+      "norm_label": "middleware que revisa si la peticion se hizo dentro del horario de funcionamient"
+    },
+    {
+      "label": "__init__.py",
+      "file_type": "code",
+      "source_file": "middleware/__init__.py",
+      "source_location": "L1",
+      "id": "middleware_init_py",
+      "community": 6,
+      "norm_label": "__init__.py"
+    },
+    {
+      "label": "no_cache.py",
+      "file_type": "code",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L1",
+      "id": "middleware_no_cache_py",
+      "community": 6,
+      "norm_label": "no_cache.py"
+    },
+    {
+      "label": "NoCacheMiddleware",
+      "file_type": "code",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L9",
+      "id": "middleware_no_cache_nocachemiddleware",
+      "community": 6,
+      "norm_label": "nocachemiddleware"
+    },
+    {
+      "label": ".dispatch()",
+      "file_type": "code",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L15",
+      "id": "middleware_no_cache_nocachemiddleware_dispatch",
+      "community": 6,
+      "norm_label": ".dispatch()"
+    },
+    {
+      "label": "Middleware para agregar headers de no-cache a las respuestas",
+      "file_type": "rationale",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L1",
+      "id": "middleware_no_cache_rationale_1",
+      "community": 6,
+      "norm_label": "middleware para agregar headers de no-cache a las respuestas"
+    },
+    {
+      "label": "Middleware que agrega headers de no-cache a todas las respuestas     que sirven",
+      "file_type": "rationale",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L10",
+      "id": "middleware_no_cache_rationale_10",
+      "community": 6,
+      "norm_label": "middleware que agrega headers de no-cache a todas las respuestas     que sirven"
+    },
+    {
+      "label": "fudo.py",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L1",
+      "id": "fudo_fudo_py",
+      "community": 13,
+      "norm_label": "fudo.py"
+    },
+    {
+      "label": "get_token()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L30",
+      "id": "fudo_fudo_get_token",
+      "community": 13,
+      "norm_label": "get_token()"
+    },
+    {
+      "label": "get_modifiers()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L85",
+      "id": "fudo_fudo_get_modifiers",
+      "community": 13,
+      "norm_label": "get_modifiers()"
+    },
+    {
+      "label": "get_categories()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L94",
+      "id": "fudo_fudo_get_categories",
+      "community": 13,
+      "norm_label": "get_categories()"
+    },
+    {
+      "label": "get_category_dict()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L103",
+      "id": "fudo_fudo_get_category_dict",
+      "community": 13,
+      "norm_label": "get_category_dict()"
+    },
+    {
+      "label": "get_category()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L110",
+      "id": "fudo_fudo_get_category",
+      "community": 13,
+      "norm_label": "get_category()"
+    },
+    {
+      "label": "get_product()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L126",
+      "id": "fudo_fudo_get_product",
+      "community": 13,
+      "norm_label": "get_product()"
+    },
+    {
+      "label": "get_products()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L153",
+      "id": "fudo_fudo_get_products",
+      "community": 13,
+      "norm_label": "get_products()"
+    },
+    {
+      "label": "fetch_page()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L163",
+      "id": "fudo_fudo_fetch_page",
+      "community": 13,
+      "norm_label": "fetch_page()"
+    },
+    {
+      "label": "get_all_indexed_products()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L183",
+      "id": "fudo_fudo_get_all_indexed_products",
+      "community": 13,
+      "norm_label": "get_all_indexed_products()"
+    },
+    {
+      "label": "get_all_products()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L234",
+      "id": "fudo_fudo_get_all_products",
+      "community": 13,
+      "norm_label": "get_all_products()"
+    },
+    {
+      "label": "_get_page_bounds()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L239",
+      "id": "fudo_fudo_get_page_bounds",
+      "community": 13,
+      "norm_label": "_get_page_bounds()"
+    },
+    {
+      "label": "get_table()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L269",
+      "id": "fudo_fudo_get_table",
+      "community": 13,
+      "norm_label": "get_table()"
+    },
+    {
+      "label": "get_table_items()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L349",
+      "id": "fudo_fudo_get_table_items",
+      "community": 13,
+      "norm_label": "get_table_items()"
+    },
+    {
+      "label": "get_sale()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L395",
+      "id": "fudo_fudo_get_sale",
+      "community": 13,
+      "norm_label": "get_sale()"
+    },
+    {
+      "label": "create_sale()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L407",
+      "id": "fudo_fudo_create_sale",
+      "community": 13,
+      "norm_label": "create_sale()"
+    },
+    {
+      "label": "create_item()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L443",
+      "id": "fudo_fudo_create_item",
+      "community": 13,
+      "norm_label": "create_item()"
+    },
+    {
+      "label": "get_active_sale()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L480",
+      "id": "fudo_fudo_get_active_sale",
+      "community": 13,
+      "norm_label": "get_active_sale()"
+    },
+    {
+      "label": "clear_token()",
+      "file_type": "code",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L486",
+      "id": "fudo_fudo_clear_token",
+      "community": 13,
+      "norm_label": "clear_token()"
+    },
+    {
+      "label": "Obtiene el token de autenticaci\u00f3n de Fudo API.     Primero verifica si existe un",
+      "file_type": "rationale",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L31",
+      "id": "fudo_fudo_rationale_31",
+      "community": 13,
+      "norm_label": "obtiene el token de autenticacion de fudo api.     primero verifica si existe un"
+    },
+    {
+      "label": "Realiza la petici\u00f3n de una sola p\u00e1gina de forma as\u00edncrona.     Retorna una tupla",
+      "file_type": "rationale",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L164",
+      "id": "fudo_fudo_rationale_164",
+      "community": 13,
+      "norm_label": "realiza la peticion de una sola pagina de forma asincrona.     retorna una tupla"
+    },
+    {
+      "label": "M\u00e9todo para obtener todos los productos de la base de datos.",
+      "file_type": "rationale",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L235",
+      "id": "fudo_fudo_rationale_235",
+      "community": 13,
+      "norm_label": "metodo para obtener todos los productos de la base de datos."
+    },
+    {
+      "label": "Funci\u00f3n helper: Obtiene una p\u00e1gina y devuelve el primer y \u00faltimo      n\u00famero de",
+      "file_type": "rationale",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L240",
+      "id": "fudo_fudo_rationale_240",
+      "community": 13,
+      "norm_label": "funcion helper: obtiene una pagina y devuelve el primer y ultimo      numero de"
+    },
+    {
+      "label": "Elimina el token cached de Redis.     \u00datil cuando el token es inv\u00e1lido o se nece",
+      "file_type": "rationale",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L487",
+      "id": "fudo_fudo_rationale_487",
+      "community": 13,
+      "norm_label": "elimina el token cached de redis.     util cuando el token es invalido o se nece"
+    },
+    {
+      "label": "__init__.py",
+      "file_type": "code",
+      "source_file": "fudo/__init__.py",
+      "source_location": "L1",
+      "id": "fudo_init_py",
+      "community": 50,
+      "norm_label": "__init__.py"
+    },
+    {
+      "label": "security.py",
+      "file_type": "code",
+      "source_file": "auth/security.py",
+      "source_location": "L1",
+      "id": "auth_security_py",
+      "community": 6,
+      "norm_label": "security.py"
+    },
+    {
+      "label": "TokenData",
+      "file_type": "code",
+      "source_file": "auth/security.py",
+      "source_location": "L23",
+      "id": "auth_security_tokendata",
+      "community": 6,
+      "norm_label": "tokendata"
+    },
+    {
+      "label": "hash_password()",
+      "file_type": "code",
+      "source_file": "auth/security.py",
+      "source_location": "L27",
+      "id": "auth_security_hash_password",
+      "community": 6,
+      "norm_label": "hash_password()"
+    },
+    {
+      "label": "generate_token()",
+      "file_type": "code",
+      "source_file": "auth/security.py",
+      "source_location": "L31",
+      "id": "auth_security_generate_token",
+      "community": 0,
+      "norm_label": "generate_token()"
+    },
+    {
+      "label": "create_access_token()",
+      "file_type": "code",
+      "source_file": "auth/security.py",
+      "source_location": "L50",
+      "id": "auth_security_create_access_token",
+      "community": 6,
+      "norm_label": "create_access_token()"
+    },
+    {
+      "label": "authenticate_user()",
+      "file_type": "code",
+      "source_file": "auth/security.py",
+      "source_location": "L63",
+      "id": "auth_security_authenticate_user",
+      "community": 6,
+      "norm_label": "authenticate_user()"
+    },
+    {
+      "label": "get_current_user()",
+      "file_type": "code",
+      "source_file": "auth/security.py",
+      "source_location": "L84",
+      "id": "auth_security_get_current_user",
+      "community": 6,
+      "norm_label": "get_current_user()"
+    },
+    {
+      "label": "Hash a password using bcrypt.",
+      "file_type": "rationale",
+      "source_file": "auth/security.py",
+      "source_location": "L28",
+      "id": "auth_security_rationale_28",
+      "community": 6,
+      "norm_label": "hash a password using bcrypt."
+    },
+    {
+      "label": "Generate a JWT token for user authentication.",
+      "file_type": "rationale",
+      "source_file": "auth/security.py",
+      "source_location": "L32",
+      "id": "auth_security_rationale_32",
+      "community": 0,
+      "norm_label": "generate a jwt token for user authentication."
+    },
+    {
+      "label": "Create a JWT access token.",
+      "file_type": "rationale",
+      "source_file": "auth/security.py",
+      "source_location": "L51",
+      "id": "auth_security_rationale_51",
+      "community": 6,
+      "norm_label": "create a jwt access token."
+    },
+    {
+      "label": "Authenticate a user by email and password.",
+      "file_type": "rationale",
+      "source_file": "auth/security.py",
+      "source_location": "L64",
+      "id": "auth_security_rationale_64",
+      "community": 6,
+      "norm_label": "authenticate a user by email and password."
+    },
+    {
+      "label": "__init__.py",
+      "file_type": "code",
+      "source_file": "auth/__init__.py",
+      "source_location": "L1",
+      "id": "auth_init_py",
+      "community": 51,
+      "norm_label": "__init__.py"
+    },
+    {
+      "label": "settings.py",
+      "file_type": "code",
+      "source_file": "config/settings.py",
+      "source_location": "L1",
+      "id": "config_settings_py",
+      "community": 5,
+      "norm_label": "settings.py"
+    },
+    {
+      "label": "validate_config()",
+      "file_type": "code",
+      "source_file": "config/settings.py",
+      "source_location": "L58",
+      "id": "config_settings_validate_config",
+      "community": 5,
+      "norm_label": "validate_config()"
+    },
+    {
+      "label": "messages.py",
+      "file_type": "code",
+      "source_file": "config/messages.py",
+      "source_location": "L1",
+      "id": "config_messages_py",
+      "community": 1,
+      "norm_label": "messages.py"
+    },
+    {
+      "label": "ErrorResponse",
+      "file_type": "code",
+      "source_file": "config/messages.py",
+      "source_location": "L1",
+      "id": "config_messages_errorresponse",
+      "community": 1,
+      "norm_label": "errorresponse"
+    },
+    {
+      "label": "SuccessResponse",
+      "file_type": "code",
+      "source_file": "config/messages.py",
+      "source_location": "L17",
+      "id": "config_messages_successresponse",
+      "community": 1,
+      "norm_label": "successresponse"
+    },
+    {
+      "label": "UserResponse",
+      "file_type": "code",
+      "source_file": "config/messages.py",
+      "source_location": "L32",
+      "id": "config_messages_userresponse",
+      "community": 1,
+      "norm_label": "userresponse"
+    },
+    {
+      "label": "Class to handle error messages in the response.",
+      "file_type": "rationale",
+      "source_file": "config/messages.py",
+      "source_location": "L2",
+      "id": "config_messages_rationale_2",
+      "community": 1,
+      "norm_label": "class to handle error messages in the response."
+    },
+    {
+      "label": "Class to handle success messages in the response.",
+      "file_type": "rationale",
+      "source_file": "config/messages.py",
+      "source_location": "L18",
+      "id": "config_messages_rationale_18",
+      "community": 1,
+      "norm_label": "class to handle success messages in the response."
+    },
+    {
+      "label": "Class to handle user-related messages in the response.",
+      "file_type": "rationale",
+      "source_file": "config/messages.py",
+      "source_location": "L33",
+      "id": "config_messages_rationale_33",
+      "community": 1,
+      "norm_label": "class to handle user-related messages in the response."
+    },
+    {
+      "label": "mails.py",
+      "file_type": "code",
+      "source_file": "config/mails.py",
+      "source_location": "L1",
+      "id": "config_mails_py",
+      "community": 52,
+      "norm_label": "mails.py"
+    },
+    {
+      "label": "__init__.py",
+      "file_type": "code",
+      "source_file": "config/__init__.py",
+      "source_location": "L1",
+      "id": "config_init_py",
+      "community": 53,
+      "norm_label": "__init__.py"
+    },
+    {
+      "label": "product_category.py",
+      "file_type": "code",
+      "source_file": "data/product_category.py",
+      "source_location": "L1",
+      "id": "data_product_category_py",
+      "community": 54,
+      "norm_label": "product_category.py"
+    },
+    {
+      "label": "items.py",
+      "file_type": "code",
+      "source_file": "models/items.py",
+      "source_location": "L1",
+      "id": "models_items_py",
+      "community": 1,
+      "norm_label": "items.py"
+    },
+    {
+      "label": "Item",
+      "file_type": "code",
+      "source_file": "models/items.py",
+      "source_location": "L5",
+      "id": "models_items_item",
+      "community": 1,
+      "norm_label": "item"
+    },
+    {
+      "label": "Order",
+      "file_type": "code",
+      "source_file": "models/items.py",
+      "source_location": "L13",
+      "id": "models_items_order",
+      "community": 1,
+      "norm_label": "order"
+    },
+    {
+      "label": "OrderBilling",
+      "file_type": "code",
+      "source_file": "models/items.py",
+      "source_location": "L22",
+      "id": "models_items_orderbilling",
+      "community": 1,
+      "norm_label": "orderbilling"
+    },
+    {
+      "label": "Product",
+      "file_type": "code",
+      "source_file": "models/items.py",
+      "source_location": "L28",
+      "id": "models_items_product",
+      "community": 14,
+      "norm_label": "product"
+    },
+    {
+      "label": "ProductEditRequest",
+      "file_type": "code",
+      "source_file": "models/items.py",
+      "source_location": "L44",
+      "id": "models_items_producteditrequest",
+      "community": 1,
+      "norm_label": "producteditrequest"
+    },
+    {
+      "label": "ProductCreateRequest",
+      "file_type": "code",
+      "source_file": "models/items.py",
+      "source_location": "L55",
+      "id": "models_items_productcreaterequest",
+      "community": 1,
+      "norm_label": "productcreaterequest"
+    },
+    {
+      "label": "ProductTypes",
+      "file_type": "code",
+      "source_file": "models/items.py",
+      "source_location": "L67",
+      "id": "models_items_producttypes",
+      "community": 1,
+      "norm_label": "producttypes"
+    },
+    {
+      "label": "get_all_types()",
+      "file_type": "code",
+      "source_file": "models/items.py",
+      "source_location": "L73",
+      "id": "models_items_get_all_types",
+      "community": 1,
+      "norm_label": "get_all_types()"
+    },
+    {
+      "label": "Order model matching the database schema",
+      "file_type": "rationale",
+      "source_file": "models/items.py",
+      "source_location": "L14",
+      "id": "models_items_rationale_14",
+      "community": 1,
+      "norm_label": "order model matching the database schema"
+    },
+    {
+      "label": "Order model matching the database schema",
+      "file_type": "rationale",
+      "source_file": "models/items.py",
+      "source_location": "L23",
+      "id": "models_items_rationale_23",
+      "community": 1,
+      "norm_label": "order model matching the database schema"
+    },
+    {
+      "label": "Product model matching the database schema",
+      "file_type": "rationale",
+      "source_file": "models/items.py",
+      "source_location": "L29",
+      "id": "models_items_rationale_29",
+      "community": 14,
+      "norm_label": "product model matching the database schema"
+    },
+    {
+      "label": "Request model for editing a product",
+      "file_type": "rationale",
+      "source_file": "models/items.py",
+      "source_location": "L45",
+      "id": "models_items_rationale_45",
+      "community": 1,
+      "norm_label": "request model for editing a product"
+    },
+    {
+      "label": "Request model for creating a new product",
+      "file_type": "rationale",
+      "source_file": "models/items.py",
+      "source_location": "L56",
+      "id": "models_items_rationale_56",
+      "community": 1,
+      "norm_label": "request model for creating a new product"
+    },
+    {
+      "label": "Enumeration of product types",
+      "file_type": "rationale",
+      "source_file": "models/items.py",
+      "source_location": "L68",
+      "id": "models_items_rationale_68",
+      "community": 1,
+      "norm_label": "enumeration of product types"
+    },
+    {
+      "label": "Returns a list of all product types",
+      "file_type": "rationale",
+      "source_file": "models/items.py",
+      "source_location": "L74",
+      "id": "models_items_rationale_74",
+      "community": 55,
+      "norm_label": "returns a list of all product types"
+    },
+    {
+      "label": "blacklist.py",
+      "file_type": "code",
+      "source_file": "models/blacklist.py",
+      "source_location": "L1",
+      "id": "models_blacklist_py",
+      "community": 1,
+      "norm_label": "blacklist.py"
+    },
+    {
+      "label": "Blacklist",
+      "file_type": "code",
+      "source_file": "models/blacklist.py",
+      "source_location": "L4",
+      "id": "models_blacklist_blacklist",
+      "community": 8,
+      "norm_label": "blacklist"
+    },
+    {
+      "label": "Blacklist model matching the database schema",
+      "file_type": "rationale",
+      "source_file": "models/blacklist.py",
+      "source_location": "L5",
+      "id": "models_blacklist_rationale_5",
+      "community": 8,
+      "norm_label": "blacklist model matching the database schema"
+    },
+    {
+      "label": "sales.py",
+      "file_type": "code",
+      "source_file": "models/sales.py",
+      "source_location": "L1",
+      "id": "models_sales_py",
+      "community": 1,
+      "norm_label": "sales.py"
+    },
+    {
+      "label": "Promotion",
+      "file_type": "code",
+      "source_file": "models/sales.py",
+      "source_location": "L8",
+      "id": "models_sales_promotion",
+      "community": 1,
+      "norm_label": "promotion"
+    },
+    {
+      "label": "ItemWeb",
+      "file_type": "code",
+      "source_file": "models/sales.py",
+      "source_location": "L12",
+      "id": "models_sales_itemweb",
+      "community": 1,
+      "norm_label": "itemweb"
+    },
+    {
+      "label": "OrderWeb",
+      "file_type": "code",
+      "source_file": "models/sales.py",
+      "source_location": "L20",
+      "id": "models_sales_orderweb",
+      "community": 1,
+      "norm_label": "orderweb"
+    },
+    {
+      "label": "Sale",
+      "file_type": "code",
+      "source_file": "models/sales.py",
+      "source_location": "L27",
+      "id": "models_sales_sale",
+      "community": 7,
+      "norm_label": "sale"
+    },
+    {
+      "label": "Sale model matching the database schema",
+      "file_type": "rationale",
+      "source_file": "models/sales.py",
+      "source_location": "L28",
+      "id": "models_sales_rationale_28",
+      "community": 7,
+      "norm_label": "sale model matching the database schema"
+    },
+    {
+      "label": "chat.py",
+      "file_type": "code",
+      "source_file": "models/chat.py",
+      "source_location": "L1",
+      "id": "models_chat_py",
+      "community": 1,
+      "norm_label": "chat.py"
+    },
+    {
+      "label": "Message",
+      "file_type": "code",
+      "source_file": "models/chat.py",
+      "source_location": "L6",
+      "id": "models_chat_message",
+      "community": 1,
+      "norm_label": "message"
+    },
+    {
+      "label": "ChatCompletionRequest",
+      "file_type": "code",
+      "source_file": "models/chat.py",
+      "source_location": "L11",
+      "id": "models_chat_chatcompletionrequest",
+      "community": 1,
+      "norm_label": "chatcompletionrequest"
+    },
+    {
+      "label": "NotifyRequest",
+      "file_type": "code",
+      "source_file": "models/chat.py",
+      "source_location": "L15",
+      "id": "models_chat_notifyrequest",
+      "community": 1,
+      "norm_label": "notifyrequest"
+    },
+    {
+      "label": "__init__.py",
+      "file_type": "code",
+      "source_file": "models/__init__.py",
+      "source_location": "L1",
+      "id": "models_init_py",
+      "community": 1,
+      "norm_label": "__init__.py"
+    },
+    {
+      "label": "user.py",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L1",
+      "id": "models_user_py",
+      "community": 1,
+      "norm_label": "user.py"
+    },
+    {
+      "label": "UserIDRequest",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L5",
+      "id": "models_user_useridrequest",
+      "community": 1,
+      "norm_label": "useridrequest"
+    },
+    {
+      "label": "RegisterUserRequest",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L8",
+      "id": "models_user_registeruserrequest",
+      "community": 1,
+      "norm_label": "registeruserrequest"
+    },
+    {
+      "label": "ForceRegisterUserRequest",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L13",
+      "id": "models_user_forceregisteruserrequest",
+      "community": 1,
+      "norm_label": "forceregisteruserrequest"
+    },
+    {
+      "label": "UserRewardRequest",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L19",
+      "id": "models_user_userrewardrequest",
+      "community": 1,
+      "norm_label": "userrewardrequest"
+    },
+    {
+      "label": "PinUserRequest",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L22",
+      "id": "models_user_pinuserrequest",
+      "community": 1,
+      "norm_label": "pinuserrequest"
+    },
+    {
+      "label": "User",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L25",
+      "id": "models_user_user",
+      "community": 11,
+      "norm_label": "user"
+    },
+    {
+      "label": "UserMail",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L37",
+      "id": "models_user_usermail",
+      "community": 1,
+      "norm_label": "usermail"
+    },
+    {
+      "label": "LoginRequest",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L39",
+      "id": "models_user_loginrequest",
+      "community": 1,
+      "norm_label": "loginrequest"
+    },
+    {
+      "label": "PinRecoveryRequest",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L43",
+      "id": "models_user_pinrecoveryrequest",
+      "community": 1,
+      "norm_label": "pinrecoveryrequest"
+    },
+    {
+      "label": "PinRecoveryValidateRequest",
+      "file_type": "code",
+      "source_file": "models/user.py",
+      "source_location": "L48",
+      "id": "models_user_pinrecoveryvalidaterequest",
+      "community": 1,
+      "norm_label": "pinrecoveryvalidaterequest"
+    },
+    {
+      "label": "User model matching the database schema",
+      "file_type": "rationale",
+      "source_file": "models/user.py",
+      "source_location": "L26",
+      "id": "models_user_rationale_26",
+      "community": 11,
+      "norm_label": "user model matching the database schema"
+    },
+    {
+      "label": "CLAUDE.md",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L1",
+      "id": "claude_md",
+      "community": 17,
+      "norm_label": "claude.md"
+    },
+    {
+      "label": "CLAUDE.md",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L1",
+      "id": "pedidos_express_server_claude_claude_md",
+      "community": 17,
+      "norm_label": "claude.md"
+    },
+    {
+      "label": "Project Overview",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L5",
+      "id": "pedidos_express_server_claude_project_overview",
+      "community": 17,
+      "norm_label": "project overview"
+    },
+    {
+      "label": "Commands",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L9",
+      "id": "pedidos_express_server_claude_commands",
+      "community": 17,
+      "norm_label": "commands"
+    },
+    {
+      "label": "Development",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L11",
+      "id": "pedidos_express_server_claude_development",
+      "community": 17,
+      "norm_label": "development"
+    },
+    {
+      "label": "code:bash (python main.py)",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L12",
+      "id": "pedidos_express_server_claude_codeblock_1",
+      "community": 17,
+      "norm_label": "code:bash (python main.py)"
+    },
+    {
+      "label": "Production",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L16",
+      "id": "pedidos_express_server_claude_production",
+      "community": 17,
+      "norm_label": "production"
+    },
+    {
+      "label": "code:bash (gunicorn -w 4 -k uvicorn.workers.UvicornWorker app:app --bin)",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L17",
+      "id": "pedidos_express_server_claude_codeblock_2",
+      "community": 17,
+      "norm_label": "code:bash (gunicorn -w 4 -k uvicorn.workers.uvicornworker app:app --bin)"
+    },
+    {
+      "label": "Frontend (Tailwind CSS)",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L21",
+      "id": "pedidos_express_server_claude_frontend_tailwind_css",
+      "community": 17,
+      "norm_label": "frontend (tailwind css)"
+    },
+    {
+      "label": "code:bash (npm install)",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L22",
+      "id": "pedidos_express_server_claude_codeblock_3",
+      "community": 17,
+      "norm_label": "code:bash (npm install)"
+    },
+    {
+      "label": "Requirements",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L27",
+      "id": "pedidos_express_server_claude_requirements",
+      "community": 17,
+      "norm_label": "requirements"
+    },
+    {
+      "label": "code:bash (pip install -r requirements.txt)",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L28",
+      "id": "pedidos_express_server_claude_codeblock_4",
+      "community": 17,
+      "norm_label": "code:bash (pip install -r requirements.txt)"
+    },
+    {
+      "label": "Architecture",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L32",
+      "id": "pedidos_express_server_claude_architecture",
+      "community": 17,
+      "norm_label": "architecture"
+    },
+    {
+      "label": "Entry Point Flow",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L34",
+      "id": "pedidos_express_server_claude_entry_point_flow",
+      "community": 17,
+      "norm_label": "entry point flow"
+    },
+    {
+      "label": "Key Directories",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L37",
+      "id": "pedidos_express_server_claude_key_directories",
+      "community": 17,
+      "norm_label": "key directories"
+    },
+    {
+      "label": "Dependencies",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L47",
+      "id": "pedidos_express_server_claude_dependencies",
+      "community": 17,
+      "norm_label": "dependencies"
+    },
+    {
+      "label": "Route Protection",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L53",
+      "id": "pedidos_express_server_claude_route_protection",
+      "community": 17,
+      "norm_label": "route protection"
+    },
+    {
+      "label": "Configuration",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L56",
+      "id": "pedidos_express_server_claude_configuration",
+      "community": 17,
+      "norm_label": "configuration"
+    },
+    {
+      "label": "Commit Convention",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L59",
+      "id": "pedidos_express_server_claude_commit_convention",
+      "community": 17,
+      "norm_label": "commit convention"
+    },
+    {
+      "label": "Database",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L62",
+      "id": "pedidos_express_server_claude_database",
+      "community": 17,
+      "norm_label": "database"
+    },
+    {
+      "label": "graphify",
+      "file_type": "document",
+      "source_file": "CLAUDE.md",
+      "source_location": "L65",
+      "id": "pedidos_express_server_claude_graphify",
+      "community": 17,
+      "norm_label": "graphify"
+    },
+    {
+      "label": "README.md",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L1",
+      "id": "readme_md",
+      "community": 15,
+      "norm_label": "readme.md"
+    },
+    {
+      "label": "**Biergarten Klein \\- Sistema de Pedidos Express**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L1",
+      "id": "pedidos_express_server_readme_biergarten_klein_sistema_de_pedidos_express",
+      "community": 15,
+      "norm_label": "**biergarten klein \\- sistema de pedidos express**"
+    },
+    {
+      "label": "**\ud83d\ude80 Puesta en Marcha (Getting Started)**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L5",
+      "id": "pedidos_express_server_readme_puesta_en_marcha_getting_started",
+      "community": 15,
+      "norm_label": "**\ud83d\ude80 puesta en marcha (getting started)**"
+    },
+    {
+      "label": "**1\\. Prerrequisitos**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L9",
+      "id": "pedidos_express_server_readme_1_prerrequisitos",
+      "community": 15,
+      "norm_label": "**1\\. prerrequisitos**"
+    },
+    {
+      "label": "**2\\. Instalaci\u00f3n**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L15",
+      "id": "pedidos_express_server_readme_2_instalaci_n",
+      "community": 15,
+      "norm_label": "**2\\. instalacion**"
+    },
+    {
+      "label": "**3\\. Variables de Entorno (.env)**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L30",
+      "id": "pedidos_express_server_readme_3_variables_de_entorno_env",
+      "community": 15,
+      "norm_label": "**3\\. variables de entorno (.env)**"
+    },
+    {
+      "label": "**4\\. Ejecuci\u00f3n**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L59",
+      "id": "pedidos_express_server_readme_4_ejecuci_n",
+      "community": 15,
+      "norm_label": "**4\\. ejecucion**"
+    },
+    {
+      "label": "**Modo Desarrollo**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L61",
+      "id": "pedidos_express_server_readme_modo_desarrollo",
+      "community": 15,
+      "norm_label": "**modo desarrollo**"
+    },
+    {
+      "label": "**Modo Producci\u00f3n**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L69",
+      "id": "pedidos_express_server_readme_modo_producci_n",
+      "community": 15,
+      "norm_label": "**modo produccion**"
+    },
+    {
+      "label": "**\ud83c\udfd7\ufe0f Resumen de la Arquitectura**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L75",
+      "id": "pedidos_express_server_readme_resumen_de_la_arquitectura",
+      "community": 15,
+      "norm_label": "**\ud83c\udfd7\ufe0f resumen de la arquitectura**"
+    },
+    {
+      "label": "**\ud83e\udd16 Caracter\u00edsticas Principales**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L109",
+      "id": "pedidos_express_server_readme_caracter_sticas_principales",
+      "community": 15,
+      "norm_label": "**\ud83e\udd16 caracteristicas principales**"
+    },
+    {
+      "label": "**Asistente de IA (Camilo Klein)**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L111",
+      "id": "pedidos_express_server_readme_asistente_de_ia_camilo_klein",
+      "community": 15,
+      "norm_label": "**asistente de ia (camilo klein)**"
+    },
+    {
+      "label": "**Gesti\u00f3n de Pedidos y Productos**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L118",
+      "id": "pedidos_express_server_readme_gesti_n_de_pedidos_y_productos",
+      "community": 15,
+      "norm_label": "**gestion de pedidos y productos**"
+    },
+    {
+      "label": "**Integraciones de Hardware y Externas**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L124",
+      "id": "pedidos_express_server_readme_integraciones_de_hardware_y_externas",
+      "community": 15,
+      "norm_label": "**integraciones de hardware y externas**"
+    },
+    {
+      "label": "**Seguridad**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L130",
+      "id": "pedidos_express_server_readme_seguridad",
+      "community": 15,
+      "norm_label": "**seguridad**"
+    },
+    {
+      "label": "**\ud83d\udd0c API Endpoints (Resumen)**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L136",
+      "id": "pedidos_express_server_readme_api_endpoints_resumen",
+      "community": 15,
+      "norm_label": "**\ud83d\udd0c api endpoints (resumen)**"
+    },
+    {
+      "label": "**Chat (Asistente IA)**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L140",
+      "id": "pedidos_express_server_readme_chat_asistente_ia",
+      "community": 15,
+      "norm_label": "**chat (asistente ia)**"
+    },
+    {
+      "label": "**Productos**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L145",
+      "id": "pedidos_express_server_readme_productos",
+      "community": 15,
+      "norm_label": "**productos**"
+    },
+    {
+      "label": "**Pedidos**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L149",
+      "id": "pedidos_express_server_readme_pedidos",
+      "community": 15,
+      "norm_label": "**pedidos**"
+    },
+    {
+      "label": "**Usuarios**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L153",
+      "id": "pedidos_express_server_readme_usuarios",
+      "community": 15,
+      "norm_label": "**usuarios**"
+    },
+    {
+      "label": "**Ventas (Sales)**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L158",
+      "id": "pedidos_express_server_readme_ventas_sales",
+      "community": 15,
+      "norm_label": "**ventas (sales)**"
+    },
+    {
+      "label": "**Frontend**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L162",
+      "id": "pedidos_express_server_readme_frontend",
+      "community": 15,
+      "norm_label": "**frontend**"
+    },
+    {
+      "label": "**\ud83d\udee0\ufe0f Tecnolog\u00edas Utilizadas**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L169",
+      "id": "pedidos_express_server_readme_tecnolog_as_utilizadas",
+      "community": 15,
+      "norm_label": "**\ud83d\udee0\ufe0f tecnologias utilizadas**"
+    },
+    {
+      "label": "**\ud83d\udcdd Logging y Monitoreo**",
+      "file_type": "document",
+      "source_file": "README.md",
+      "source_location": "L179",
+      "id": "pedidos_express_server_readme_logging_y_monitoreo",
+      "community": 15,
+      "norm_label": "**\ud83d\udcdd logging y monitoreo**"
+    },
+    {
+      "label": "AGENTS.md",
+      "file_type": "document",
+      "source_file": "AGENTS.md",
+      "source_location": "L1",
+      "id": "agents_md",
+      "community": 56,
+      "norm_label": "agents.md"
+    },
+    {
+      "label": "migracion_fudo_toteat.md",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L1",
+      "id": "docs_migracion_fudo_toteat_md",
+      "community": 12,
+      "norm_label": "migracion_fudo_toteat.md"
+    },
+    {
+      "label": "Auditor\u00eda Fudo \u2192 Toteat e Impresoras",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L1",
+      "id": "docs_migracion_fudo_toteat_auditor_a_fudo_toteat_e_impresoras",
+      "community": 12,
+      "norm_label": "auditoria fudo \u2192 toteat e impresoras"
+    },
+    {
+      "label": "1. Auditor\u00eda del uso de la API de Fudo",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L15",
+      "id": "docs_migracion_fudo_toteat_1_auditor_a_del_uso_de_la_api_de_fudo",
+      "community": 12,
+      "norm_label": "1. auditoria del uso de la api de fudo"
+    },
+    {
+      "label": "1.1 Funciones definidas en `fudo/fudo.py`",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L17",
+      "id": "docs_migracion_fudo_toteat_1_1_funciones_definidas_en_fudo_fudo_py",
+      "community": 12,
+      "norm_label": "1.1 funciones definidas en `fudo/fudo.py`"
+    },
+    {
+      "label": "1.2 Uso por archivo",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L39",
+      "id": "docs_migracion_fudo_toteat_1_2_uso_por_archivo",
+      "community": 12,
+      "norm_label": "1.2 uso por archivo"
+    },
+    {
+      "label": "`routes/orders.py`",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L41",
+      "id": "docs_migracion_fudo_toteat_routes_orders_py",
+      "community": 12,
+      "norm_label": "`routes/orders.py`"
+    },
+    {
+      "label": "`routes/products.py`",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L49",
+      "id": "docs_migracion_fudo_toteat_routes_products_py",
+      "community": 12,
+      "norm_label": "`routes/products.py`"
+    },
+    {
+      "label": "`routes/store.py`",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L55",
+      "id": "docs_migracion_fudo_toteat_routes_store_py",
+      "community": 12,
+      "norm_label": "`routes/store.py`"
+    },
+    {
+      "label": "`services/fudo_service.py`",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L61",
+      "id": "docs_migracion_fudo_toteat_services_fudo_service_py",
+      "community": 12,
+      "norm_label": "`services/fudo_service.py`"
+    },
+    {
+      "label": "`services/data_service.py`",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L71",
+      "id": "docs_migracion_fudo_toteat_services_data_service_py",
+      "community": 12,
+      "norm_label": "`services/data_service.py`"
+    },
+    {
+      "label": "`load_products.py`",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L79",
+      "id": "docs_migracion_fudo_toteat_load_products_py",
+      "community": 12,
+      "norm_label": "`load_products.py`"
+    },
+    {
+      "label": "`update_prices.py`",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L85",
+      "id": "docs_migracion_fudo_toteat_update_prices_py",
+      "community": 12,
+      "norm_label": "`update_prices.py`"
+    },
+    {
+      "label": "1.3 Resumen por funci\u00f3n",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L93",
+      "id": "docs_migracion_fudo_toteat_1_3_resumen_por_funci_n",
+      "community": 12,
+      "norm_label": "1.3 resumen por funcion"
+    },
+    {
+      "label": "1.4 Transformaciones notables",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L110",
+      "id": "docs_migracion_fudo_toteat_1_4_transformaciones_notables",
+      "community": 12,
+      "norm_label": "1.4 transformaciones notables"
+    },
+    {
+      "label": "2. Sistema de impresoras",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L121",
+      "id": "docs_migracion_fudo_toteat_2_sistema_de_impresoras",
+      "community": 12,
+      "norm_label": "2. sistema de impresoras"
+    },
+    {
+      "label": "2.1 Arquitectura",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L123",
+      "id": "docs_migracion_fudo_toteat_2_1_arquitectura",
+      "community": 12,
+      "norm_label": "2.1 arquitectura"
+    },
+    {
+      "label": "2.2 Endpoints del servidor de impresi\u00f3n",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L136",
+      "id": "docs_migracion_fudo_toteat_2_2_endpoints_del_servidor_de_impresi_n",
+      "community": 12,
+      "norm_label": "2.2 endpoints del servidor de impresion"
+    },
+    {
+      "label": "2.3 Validaci\u00f3n de conectividad",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L145",
+      "id": "docs_migracion_fudo_toteat_2_3_validaci_n_de_conectividad",
+      "community": 12,
+      "norm_label": "2.3 validacion de conectividad"
+    },
+    {
+      "label": "code:python (printers = {\"ServerPrincipal\": \"10.10.12.3\"})",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L149",
+      "id": "docs_migracion_fudo_toteat_codeblock_1",
+      "community": 12,
+      "norm_label": "code:python (printers = {\"serverprincipal\": \"10.10.12.3\"})"
+    },
+    {
+      "label": "2.4 Acoplamiento con Fudo",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L164",
+      "id": "docs_migracion_fudo_toteat_2_4_acoplamiento_con_fudo",
+      "community": 12,
+      "norm_label": "2.4 acoplamiento con fudo"
+    },
+    {
+      "label": "2.5 Configuraci\u00f3n",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L177",
+      "id": "docs_migracion_fudo_toteat_2_5_configuraci_n",
+      "community": 12,
+      "norm_label": "2.5 configuracion"
+    },
+    {
+      "label": "3. Plan de migraci\u00f3n usando `toteat/toteat.py`",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L185",
+      "id": "docs_migracion_fudo_toteat_3_plan_de_migraci_n_usando_toteat_toteat_py",
+      "community": 12,
+      "norm_label": "3. plan de migracion usando `toteat/toteat.py`"
+    },
+    {
+      "label": "3.1 Variables de entorno nuevas",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L187",
+      "id": "docs_migracion_fudo_toteat_3_1_variables_de_entorno_nuevas",
+      "community": 12,
+      "norm_label": "3.1 variables de entorno nuevas"
+    },
+    {
+      "label": "code:env (TOTEAT_API_TOKEN=...)",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L189",
+      "id": "docs_migracion_fudo_toteat_codeblock_2",
+      "community": 12,
+      "norm_label": "code:env (toteat_api_token=...)"
+    },
+    {
+      "label": "3.2 Equivalencias",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L199",
+      "id": "docs_migracion_fudo_toteat_3_2_equivalencias",
+      "community": 12,
+      "norm_label": "3.2 equivalencias"
+    },
+    {
+      "label": "3.3 Diferencias funcionales conocidas",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L219",
+      "id": "docs_migracion_fudo_toteat_3_3_diferencias_funcionales_conocidas",
+      "community": 12,
+      "norm_label": "3.3 diferencias funcionales conocidas"
+    },
+    {
+      "label": "3.4 Auditor\u00eda r\u00e1pida post-migraci\u00f3n",
+      "file_type": "document",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L243",
+      "id": "docs_migracion_fudo_toteat_3_4_auditor_a_r_pida_post_migraci_n",
+      "community": 12,
+      "norm_label": "3.4 auditoria rapida post-migracion"
+    }
+  ],
+  "links": [
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "app.py",
+      "source_location": "L16",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "app_py",
+      "target": "pedidos_express_server_app_create_app"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "app.py",
+      "source_location": "L86",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "app_py",
+      "target": "pedidos_express_server_app_setup_routes"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "app.py",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_app_rationale_17",
+      "target": "pedidos_express_server_app_create_app"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "app.py",
+      "source_location": "L38",
+      "weight": 1.0,
+      "source": "pedidos_express_server_app_create_app",
+      "target": "services_email_service_initialize_email_sender"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "main.py",
+      "source_location": "L24",
+      "weight": 1.0,
+      "source": "pedidos_express_server_main_main",
+      "target": "pedidos_express_server_app_create_app"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "app.py",
+      "source_location": "L87",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_app_rationale_87",
+      "target": "pedidos_express_server_app_setup_routes"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "main.py",
+      "source_location": "L26",
+      "weight": 1.0,
+      "source": "pedidos_express_server_main_main",
+      "target": "pedidos_express_server_app_setup_routes"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "main.py",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "main_py",
+      "target": "pedidos_express_server_main_main"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "main.py",
+      "source_location": "L14",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_main_rationale_14",
+      "target": "pedidos_express_server_main_main"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "main.py",
+      "source_location": "L17",
+      "weight": 1.0,
+      "source": "pedidos_express_server_main_main",
+      "target": "config_settings_validate_config"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "main.py",
+      "source_location": "L33",
+      "weight": 1.0,
+      "source": "pedidos_express_server_main_main",
+      "target": "services_data_service_initialize_db"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "update_prices.py",
+      "source_location": "L16",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "update_prices_py",
+      "target": "pedidos_express_server_update_prices_update_prices"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "update_prices.py",
+      "source_location": "L38",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "update_prices_py",
+      "target": "pedidos_express_server_update_prices_add_missing_products"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "update_prices.py",
+      "source_location": "L39",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_update_prices_rationale_39",
+      "target": "pedidos_express_server_update_prices_add_missing_products"
+    },
+    {
+      "relation": "imports_from",
+      "context": "import",
+      "confidence": "EXTRACTED",
+      "source_file": "enums/locations.py",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "enums_locations_py",
+      "target": "enum"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "enums/locations.py",
+      "source_location": "L3",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "enums_locations_py",
+      "target": "enums_locations_locations"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "enums/locations.py",
+      "source_location": "L11",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "enums_locations_py",
+      "target": "enums_locations_get_all"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "enums/locations.py",
+      "source_location": "L3",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "enums_locations_locations",
+      "target": "enum"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "enums/locations.py",
+      "source_location": "L4",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "enums_locations_rationale_4",
+      "target": "enums_locations_locations"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L7",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_recovery_service_py",
+      "target": "services_recovery_service_redisrecoverydata"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_recovery_service_py",
+      "target": "services_recovery_service_generate_recovery_key"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L19",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_recovery_service_py",
+      "target": "services_recovery_service_add_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L23",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_recovery_service_py",
+      "target": "services_recovery_service_get_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L28",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_recovery_service_py",
+      "target": "services_recovery_service_get_recovery_data"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L7",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_recovery_service_redisrecoverydata",
+      "target": "basemodel"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/recovery_service.py",
+      "source_location": "L32",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_recovery_service_get_recovery_data",
+      "target": "services_recovery_service_redisrecoverydata"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/orders.py",
+      "source_location": "L37",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/store.py",
+      "source_location": "L14",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_store_appstatebody",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L23",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_tokendata",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L5",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_item",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_order",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L22",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_orderbilling",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L28",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_product",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L44",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_producteditrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L55",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_productcreaterequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/blacklist.py",
+      "source_location": "L4",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_blacklist_blacklist",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/sales.py",
+      "source_location": "L8",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_sales_promotion",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/sales.py",
+      "source_location": "L12",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_sales_itemweb",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/sales.py",
+      "source_location": "L20",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_sales_orderweb",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/sales.py",
+      "source_location": "L27",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_sales_sale",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/chat.py",
+      "source_location": "L6",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_chat_message",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/chat.py",
+      "source_location": "L11",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_chat_chatcompletionrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/chat.py",
+      "source_location": "L15",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_chat_notifyrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L5",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_useridrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L8",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_registeruserrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_forceregisteruserrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L19",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_userrewardrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L22",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_pinuserrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L25",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_user",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L37",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_usermail",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L39",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_loginrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L43",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_pinrecoveryrequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L48",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_pinrecoveryvalidaterequest",
+      "target": "basemodel"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/fudo_service.py",
+      "source_location": "L6",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_fudo_service_py",
+      "target": "services_fudo_service_add_product_to_fudo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/fudo_service.py",
+      "source_location": "L27",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_fudo_service_py",
+      "target": "services_fudo_service_get_products_by_table"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/fudo_service.py",
+      "source_location": "L7",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_fudo_service_rationale_7",
+      "target": "services_fudo_service_add_product_to_fudo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/orders.py",
+      "source_location": "L185",
+      "weight": 1.0,
+      "source": "routes_orders_printer_order",
+      "target": "services_fudo_service_add_product_to_fudo"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/fudo_service.py",
+      "source_location": "L28",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_fudo_service_rationale_28",
+      "target": "services_fudo_service_get_products_by_table"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L247",
+      "weight": 1.0,
+      "source": "routes_products_get_table_items",
+      "target": "services_fudo_service_get_products_by_table"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L54",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_py",
+      "target": "services_email_service_emailsender"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L310",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_py",
+      "target": "services_email_service_initialize_email_sender"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L322",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_py",
+      "target": "services_email_service_get_email_sender"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_1",
+      "target": "services_email_service_py"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L55",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_init"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L65",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_connect"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L90",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_close"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L107",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_create_fresh_connection"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L119",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_start_queue_worker"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L128",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_stop_queue_worker"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L147",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_process_email_queue"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L186",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_send_email_with_retry"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L201",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_send_email_immediately"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L237",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_send_email"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L253",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_send_email_sync"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L286",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_get_queue_size"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L290",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_is_queue_processing"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L294",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender",
+      "target": "services_email_service_emailsender_clear_queue"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L314",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_initialize_email_sender",
+      "target": "services_email_service_emailsender"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender_init",
+      "target": "services_email_service_emailsender_start_queue_worker"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L316",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_initialize_email_sender",
+      "target": "services_email_service_emailsender_connect"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L66",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_66",
+      "target": "services_email_service_emailsender_connect"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L96",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender_close",
+      "target": "services_email_service_emailsender_stop_queue_worker"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L91",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_91",
+      "target": "services_email_service_emailsender_close"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L209",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender_send_email_immediately",
+      "target": "services_email_service_emailsender_create_fresh_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L261",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender_send_email_sync",
+      "target": "services_email_service_emailsender_create_fresh_connection"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L108",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_108",
+      "target": "services_email_service_emailsender_create_fresh_connection"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L120",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_120",
+      "target": "services_email_service_emailsender_start_queue_worker"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L129",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_129",
+      "target": "services_email_service_emailsender_stop_queue_worker"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L161",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender_process_email_queue",
+      "target": "services_email_service_emailsender_send_email_with_retry"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L148",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_148",
+      "target": "services_email_service_emailsender_process_email_queue"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L190",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_emailsender_send_email_with_retry",
+      "target": "services_email_service_emailsender_send_email_immediately"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L187",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_187",
+      "target": "services_email_service_emailsender_send_email_with_retry"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L202",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_202",
+      "target": "services_email_service_emailsender_send_email_immediately"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L238",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_238",
+      "target": "services_email_service_emailsender_send_email"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L254",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_254",
+      "target": "services_email_service_emailsender_send_email_sync"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L287",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_287",
+      "target": "services_email_service_emailsender_get_queue_size"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L291",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_291",
+      "target": "services_email_service_emailsender_is_queue_processing"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L295",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_295",
+      "target": "services_email_service_emailsender_clear_queue"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L326",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_get_email_sender",
+      "target": "services_email_service_initialize_email_sender"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L311",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_311",
+      "target": "services_email_service_initialize_email_sender"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/email_service.py",
+      "source_location": "L323",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_email_service_rationale_323",
+      "target": "services_email_service_get_email_sender"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/orders.py",
+      "source_location": "L146",
+      "weight": 1.0,
+      "source": "routes_orders_printer_order",
+      "target": "services_email_service_get_email_sender"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L94",
+      "weight": 1.0,
+      "source": "routes_users_register_user",
+      "target": "services_email_service_get_email_sender"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L295",
+      "weight": 1.0,
+      "source": "routes_users_change_pin",
+      "target": "services_email_service_get_email_sender"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L374",
+      "weight": 1.0,
+      "source": "routes_users_pin_forgot_post",
+      "target": "services_email_service_get_email_sender"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_py",
+      "target": "services_print_service_get_printer_url"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L19",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_py",
+      "target": "services_print_service_print_order"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L72",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_py",
+      "target": "services_print_service_print_ticket"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L106",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_py",
+      "target": "services_print_service_print_billing"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L145",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_py",
+      "target": "services_print_service_get_status"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L22",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_print_order",
+      "target": "services_print_service_get_printer_url"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L75",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_print_ticket",
+      "target": "services_print_service_get_printer_url"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L109",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_print_billing",
+      "target": "services_print_service_get_printer_url"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L149",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_get_status",
+      "target": "services_print_service_get_printer_url"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L20",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_rationale_20",
+      "target": "services_print_service_print_order"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L73",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_rationale_73",
+      "target": "services_print_service_print_ticket"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L117",
+      "weight": 1.0,
+      "source": "routes_products_get_free_beer",
+      "target": "services_print_service_print_ticket"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L313",
+      "weight": 1.0,
+      "source": "routes_users_reward_user",
+      "target": "services_print_service_print_ticket"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L107",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_rationale_107",
+      "target": "services_print_service_print_billing"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/print_service.py",
+      "source_location": "L146",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_print_service_rationale_146",
+      "target": "services_print_service_get_status"
+    },
+    {
+      "relation": "imports_from",
+      "context": "import",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L7",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "abc"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L87",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_basedataservice"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L106",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_userdataservice"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L372",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_blacklistdataservice"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L494",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_productdataservice"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L816",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_salesdataservice"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1231",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_dataservicefactory"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1235",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_get_user_service"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1240",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_get_blacklist_service"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1245",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_get_product_service"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1250",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_get_sales_service"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1256",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_load_bg_data"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1268",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_py",
+      "target": "services_data_service_initialize_db"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L87",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_basedataservice",
+      "target": "abc"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L90",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_basedataservice",
+      "target": "services_data_service_basedataservice_init"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L93",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_basedataservice",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L106",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_basedataservice"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L372",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "services_data_service_basedataservice"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L494",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_basedataservice"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L816",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_basedataservice"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L88",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_88",
+      "target": "services_data_service_basedataservice"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L18",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_basedataservice",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L19",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_basedataservice",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L20",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_basedataservice",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L21",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_basedataservice",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L111",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_create",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L136",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_get_all",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L157",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_get_by_id",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L178",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_get_by_email",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L212",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_permissions",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L228",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_get_by_rut",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L254",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_get_next_id",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L266",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_update",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L304",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_set_reward_progress",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L323",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_delete",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L337",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_update_kleincoins",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L357",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_get_kleincoins",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L377",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice_create",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L398",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice_get_all",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L419",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice_get_by_id",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L441",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice_get_blacklisted_user_ids",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L450",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice_is_user_blacklisted",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L466",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice_delete",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L480",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice_remove_user_from_blacklist",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L504",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_create",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L532",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_load_data",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L594",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_get_by_id",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L616",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_get_by_type",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L638",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_search_by_name",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L678",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_update",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L736",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_get_active_products",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L758",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_get_inactive_products",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L799",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_delete",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L821",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_create",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L863",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_add_product_to_sale",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L883",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_add_products_to_sale",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L910",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_all",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L936",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_by_id",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L961",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_by_fudo_id",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L986",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_by_user",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1018",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_sale_products_ids",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1029",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_sale_products",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1057",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_by_table",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1086",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_update_product_quantity",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1106",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_product_quantity_in_sale",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1119",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_update",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1151",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_delete",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1173",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_remove_product_from_sale",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1190",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_decrease_product_quantity",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L94",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_94",
+      "target": "services_data_service_basedataservice_get_connection"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L109",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_create"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L134",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_get_all"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L155",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_get_by_id"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L176",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_get_by_email"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L198",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_login"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L210",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_permissions"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L226",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_get_by_rut"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L252",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_get_next_id"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L264",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_update"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L302",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_set_reward_progress"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L321",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_delete"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L335",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_update_kleincoins"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L355",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice",
+      "target": "services_data_service_userdataservice_get_kleincoins"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1237",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_get_user_service",
+      "target": "services_data_service_userdataservice"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L107",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_107",
+      "target": "services_data_service_userdataservice"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L18",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_userdataservice",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L19",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_userdataservice",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L20",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_userdataservice",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L21",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_userdataservice",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "auth/security.py",
+      "source_location": "L13",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "auth_security_tokendata",
+      "target": "services_data_service_userdataservice"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L110",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_110",
+      "target": "services_data_service_userdataservice_create"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L135",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_135",
+      "target": "services_data_service_userdataservice_get_all"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L142",
+      "weight": 1.0,
+      "source": "services_data_service_userdataservice_get_all",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L156",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_156",
+      "target": "services_data_service_userdataservice_get_by_id"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L163",
+      "weight": 1.0,
+      "source": "services_data_service_userdataservice_get_by_id",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L200",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_userdataservice_login",
+      "target": "services_data_service_userdataservice_get_by_email"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L185",
+      "weight": 1.0,
+      "source": "services_data_service_userdataservice_get_by_email",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L199",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_199",
+      "target": "services_data_service_userdataservice_login"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L239",
+      "weight": 1.0,
+      "source": "services_data_service_userdataservice_get_by_rut",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L265",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_265",
+      "target": "services_data_service_userdataservice_update"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L303",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_303",
+      "target": "services_data_service_userdataservice_set_reward_progress"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L322",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_322",
+      "target": "services_data_service_userdataservice_delete"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L336",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_336",
+      "target": "services_data_service_userdataservice_update_kleincoins"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L356",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_356",
+      "target": "services_data_service_userdataservice_get_kleincoins"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L375",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "services_data_service_blacklistdataservice_create"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L396",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "services_data_service_blacklistdataservice_get_all"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L417",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "services_data_service_blacklistdataservice_get_by_id"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L439",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "services_data_service_blacklistdataservice_get_blacklisted_user_ids"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L448",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "services_data_service_blacklistdataservice_is_user_blacklisted"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L458",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "services_data_service_blacklistdataservice_update"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L464",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "services_data_service_blacklistdataservice_delete"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L478",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "services_data_service_blacklistdataservice_remove_user_from_blacklist"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1242",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_get_blacklist_service",
+      "target": "services_data_service_blacklistdataservice"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L373",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_373",
+      "target": "services_data_service_blacklistdataservice"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L18",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L19",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L20",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L21",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_blacklistdataservice",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L376",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_376",
+      "target": "services_data_service_blacklistdataservice_create"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L397",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_397",
+      "target": "services_data_service_blacklistdataservice_get_all"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L408",
+      "weight": 1.0,
+      "source": "services_data_service_blacklistdataservice_get_all",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L418",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_418",
+      "target": "services_data_service_blacklistdataservice_get_by_id"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L430",
+      "weight": 1.0,
+      "source": "services_data_service_blacklistdataservice_get_by_id",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L440",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_440",
+      "target": "services_data_service_blacklistdataservice_get_blacklisted_user_ids"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L449",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_449",
+      "target": "services_data_service_blacklistdataservice_is_user_blacklisted"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L459",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_459",
+      "target": "services_data_service_blacklistdataservice_update"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L465",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_465",
+      "target": "services_data_service_blacklistdataservice_delete"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L479",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_479",
+      "target": "services_data_service_blacklistdataservice_remove_user_from_blacklist"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L502",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_create"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L530",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_load_data"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L550",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_get_all"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L592",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_get_by_id"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L614",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_get_by_type"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L636",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_search_by_name"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L658",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_get_products"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L665",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_image_process"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L676",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_update"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L734",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_get_active_products"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L756",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_get_inactive_products"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L778",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_activate_product"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L782",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_deactivate_product"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L786",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_is_product_active"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L792",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_update_cache"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L797",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice",
+      "target": "services_data_service_productdataservice_delete"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1247",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_get_product_service",
+      "target": "services_data_service_productdataservice"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1379",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_initialize_db",
+      "target": "services_data_service_productdataservice"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L18",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_productdataservice",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L19",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_productdataservice",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L20",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_productdataservice",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L21",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_productdataservice",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/store.py",
+      "source_location": "L9",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_store_appstatebody",
+      "target": "services_data_service_productdataservice"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L511",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_create",
+      "target": "services_data_service_productdataservice_image_process"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L503",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_503",
+      "target": "services_data_service_productdataservice_create"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L536",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_load_data",
+      "target": "services_data_service_salesdataservice_create"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1380",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_initialize_db",
+      "target": "services_data_service_productdataservice_load_data"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L531",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_531",
+      "target": "services_data_service_productdataservice_load_data"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L551",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_551",
+      "target": "services_data_service_productdataservice_get_all"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L571",
+      "weight": 1.0,
+      "source": "services_data_service_productdataservice_get_all",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L600",
+      "weight": 1.0,
+      "source": "services_data_service_productdataservice_get_by_id",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L622",
+      "weight": 1.0,
+      "source": "services_data_service_productdataservice_get_by_type",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L637",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_637",
+      "target": "services_data_service_productdataservice_search_by_name"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L644",
+      "weight": 1.0,
+      "source": "services_data_service_productdataservice_search_by_name",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L660",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_get_products",
+      "target": "services_data_service_salesdataservice_get_all"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L659",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_659",
+      "target": "services_data_service_productdataservice_get_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L709",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_update",
+      "target": "services_data_service_productdataservice_image_process"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L666",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_666",
+      "target": "services_data_service_productdataservice_image_process"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L680",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_update",
+      "target": "services_data_service_salesdataservice_get_by_id"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L677",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_677",
+      "target": "services_data_service_productdataservice_update"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L735",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_735",
+      "target": "services_data_service_productdataservice_get_active_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L742",
+      "weight": 1.0,
+      "source": "services_data_service_productdataservice_get_active_products",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L757",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_757",
+      "target": "services_data_service_productdataservice_get_inactive_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L764",
+      "weight": 1.0,
+      "source": "services_data_service_productdataservice_get_inactive_products",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L780",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_activate_product",
+      "target": "services_data_service_salesdataservice_update"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L779",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_779",
+      "target": "services_data_service_productdataservice_activate_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L784",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_deactivate_product",
+      "target": "services_data_service_salesdataservice_update"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L783",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_783",
+      "target": "services_data_service_productdataservice_deactivate_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L788",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_is_product_active",
+      "target": "services_data_service_salesdataservice_get_by_id"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L787",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_787",
+      "target": "services_data_service_productdataservice_is_product_active"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L794",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_update_cache",
+      "target": "services_data_service_salesdataservice_get_all"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L801",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_productdataservice_delete",
+      "target": "services_data_service_salesdataservice_get_by_id"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L798",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_798",
+      "target": "services_data_service_productdataservice_delete"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L819",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_create"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L861",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_add_product_to_sale"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L881",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_add_products_to_sale"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L908",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_get_all"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L934",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_get_by_id"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L959",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_get_by_fudo_id"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L984",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_get_by_user"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1016",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_get_sale_products_ids"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1027",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_get_sale_products"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1055",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_get_by_table"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1084",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_update_product_quantity"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1104",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_get_product_quantity_in_sale"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1117",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_update"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1149",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_delete"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1171",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_remove_product_from_sale"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1188",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice",
+      "target": "services_data_service_salesdataservice_decrease_product_quantity"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1252",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_get_sales_service",
+      "target": "services_data_service_salesdataservice"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L817",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_817",
+      "target": "services_data_service_salesdataservice"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L18",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_salesdataservice",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L19",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_salesdataservice",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L20",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_salesdataservice",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L21",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_salesdataservice",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L820",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_820",
+      "target": "services_data_service_salesdataservice_create"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L862",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_862",
+      "target": "services_data_service_salesdataservice_add_product_to_sale"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L882",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_882",
+      "target": "services_data_service_salesdataservice_add_products_to_sale"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L930",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_all",
+      "target": "services_data_service_salesdataservice_get_sale_products"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L909",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_909",
+      "target": "services_data_service_salesdataservice_get_all"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L921",
+      "weight": 1.0,
+      "source": "services_data_service_salesdataservice_get_all",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L947",
+      "weight": 1.0,
+      "source": "services_data_service_salesdataservice_get_by_id",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L972",
+      "weight": 1.0,
+      "source": "services_data_service_salesdataservice_get_by_fudo_id",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1012",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_salesdataservice_get_by_user",
+      "target": "services_data_service_salesdataservice_get_sale_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L1003",
+      "weight": 1.0,
+      "source": "services_data_service_salesdataservice_get_by_user",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1017",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1017",
+      "target": "services_data_service_salesdataservice_get_sale_products_ids"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1028",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1028",
+      "target": "services_data_service_salesdataservice_get_sale_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L1040",
+      "weight": 1.0,
+      "source": "services_data_service_salesdataservice_get_sale_products",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1056",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1056",
+      "target": "services_data_service_salesdataservice_get_by_table"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "services/data_service.py",
+      "source_location": "L1072",
+      "weight": 1.0,
+      "source": "services_data_service_salesdataservice_get_by_table",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1085",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1085",
+      "target": "services_data_service_salesdataservice_update_product_quantity"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1105",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1105",
+      "target": "services_data_service_salesdataservice_get_product_quantity_in_sale"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1118",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1118",
+      "target": "services_data_service_salesdataservice_update"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1150",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1150",
+      "target": "services_data_service_salesdataservice_delete"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1172",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1172",
+      "target": "services_data_service_salesdataservice_remove_product_from_sale"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1189",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1189",
+      "target": "services_data_service_salesdataservice_decrease_product_quantity"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1232",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1232",
+      "target": "services_data_service_dataservicefactory"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L18",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_dataservicefactory",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L19",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_dataservicefactory",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L20",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_dataservicefactory",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "services/data_service.py",
+      "source_location": "L21",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "services_data_service_dataservicefactory",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/orders.py",
+      "source_location": "L17",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "services_data_service_dataservicefactory"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/data_service.py",
+      "source_location": "L1257",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_data_service_rationale_1257",
+      "target": "services_data_service_load_bg_data"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L19",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_openai_service_openai_service_py",
+      "target": "openai_service_openai_service_get_relevant_context"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L38",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_openai_service_openai_service_py",
+      "target": "openai_service_openai_service_generate_completion"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L121",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_openai_service_openai_service_py",
+      "target": "openai_service_openai_service_admin_completion"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L48",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "openai_service_openai_service_generate_completion",
+      "target": "openai_service_openai_service_get_relevant_context"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/chat.py",
+      "source_location": "L108",
+      "weight": 1.0,
+      "source": "routes_chat_chat_irc_endpoint",
+      "target": "openai_service_openai_service_generate_completion"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/openai_service/openai_service.py",
+      "source_location": "L123",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "openai_service_openai_service_rationale_123",
+      "target": "openai_service_openai_service_admin_completion"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/chat.py",
+      "source_location": "L153",
+      "weight": 1.0,
+      "source": "routes_chat_notify_users",
+      "target": "openai_service_openai_service_admin_completion"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "services/openai_service/openai_tools.py",
+      "source_location": "L23",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "services_openai_service_openai_tools_py",
+      "target": "openai_service_openai_tools_feedback"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "services/openai_service/openai_tools.py",
+      "source_location": "L24",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "openai_service_openai_tools_rationale_24",
+      "target": "openai_service_openai_tools_feedback"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L46",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_py",
+      "target": "routes_products_apply_promo_price"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L61",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_py",
+      "target": "routes_products_get_products"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L82",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_py",
+      "target": "routes_products_get_product"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L106",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_py",
+      "target": "routes_products_get_free_beer"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L128",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_py",
+      "target": "routes_products_create_product"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L152",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_py",
+      "target": "routes_products_switch_product_status"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L183",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_py",
+      "target": "routes_products_delete_product"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L210",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_py",
+      "target": "routes_products_edit_product"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L242",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_py",
+      "target": "routes_products_get_table_items"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L3",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_3",
+      "target": "routes_products_py"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L47",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_47",
+      "target": "routes_products_apply_promo_price"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_62",
+      "target": "routes_products_get_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L78",
+      "weight": 1.0,
+      "source": "routes_products_get_products",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L83",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_83",
+      "target": "routes_products_get_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L99",
+      "weight": 1.0,
+      "source": "routes_products_get_product",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L102",
+      "weight": 1.0,
+      "source": "routes_products_get_product",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L107",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_107",
+      "target": "routes_products_get_free_beer"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L121",
+      "weight": 1.0,
+      "source": "routes_products_get_free_beer",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L124",
+      "weight": 1.0,
+      "source": "routes_products_get_free_beer",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L129",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_129",
+      "target": "routes_products_create_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L146",
+      "weight": 1.0,
+      "source": "routes_products_create_product",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L149",
+      "weight": 1.0,
+      "source": "routes_products_create_product",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L153",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_153",
+      "target": "routes_products_switch_product_status"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L172",
+      "weight": 1.0,
+      "source": "routes_products_switch_product_status",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L175",
+      "weight": 1.0,
+      "source": "routes_products_switch_product_status",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L184",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_184",
+      "target": "routes_products_delete_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L204",
+      "weight": 1.0,
+      "source": "routes_products_delete_product",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L207",
+      "weight": 1.0,
+      "source": "routes_products_delete_product",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L211",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_211",
+      "target": "routes_products_edit_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L233",
+      "weight": 1.0,
+      "source": "routes_products_edit_product",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L236",
+      "weight": 1.0,
+      "source": "routes_products_edit_product",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/products.py",
+      "source_location": "L243",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_products_rationale_243",
+      "target": "routes_products_get_table_items"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L249",
+      "weight": 1.0,
+      "source": "routes_products_get_table_items",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/products.py",
+      "source_location": "L252",
+      "weight": 1.0,
+      "source": "routes_products_get_table_items",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/sales.py",
+      "source_location": "L19",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_sales_py",
+      "target": "routes_sales_get_user_sales"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/sales.py",
+      "source_location": "L22",
+      "weight": 1.0,
+      "source": "routes_sales_get_user_sales",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/sales.py",
+      "source_location": "L35",
+      "weight": 1.0,
+      "source": "routes_sales_get_user_sales",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/debug.py",
+      "source_location": "L15",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_debug_py",
+      "target": "routes_debug_validate_ws_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/debug.py",
+      "source_location": "L30",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_debug_py",
+      "target": "routes_debug_websocket_endpoint"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/debug.py",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_debug_websocket_endpoint",
+      "target": "routes_debug_validate_ws_token"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/debug.py",
+      "source_location": "L16",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_debug_rationale_16",
+      "target": "routes_debug_validate_ws_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L9",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_py",
+      "target": "routes_static_nocachestaticfiles"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L24",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_py",
+      "target": "routes_static_serve_app_html"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L38",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_py",
+      "target": "routes_static_serve_register_html"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L52",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_py",
+      "target": "routes_static_mount_register_static_files"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L56",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_py",
+      "target": "routes_static_mount_main_static_files"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_py",
+      "target": "routes_static_serve_image"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L9",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_nocachestaticfiles",
+      "target": "staticfiles"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L12",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_nocachestaticfiles",
+      "target": "routes_static_nocachestaticfiles_get_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L54",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_mount_register_static_files",
+      "target": "routes_static_nocachestaticfiles"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L58",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_mount_main_static_files",
+      "target": "routes_static_nocachestaticfiles"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L10",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_rationale_10",
+      "target": "routes_static_nocachestaticfiles"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_rationale_13",
+      "target": "routes_static_nocachestaticfiles_get_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L25",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_rationale_25",
+      "target": "routes_static_serve_app_html"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L39",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_rationale_39",
+      "target": "routes_static_serve_register_html"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L53",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_rationale_53",
+      "target": "routes_static_mount_register_static_files"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/static.py",
+      "source_location": "L61",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_static_rationale_61",
+      "target": "routes_static_serve_image"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/orders.py",
+      "source_location": "L37",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_orders_py",
+      "target": "routes_orders_comparepricesresponse"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/orders.py",
+      "source_location": "L44",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_orders_py",
+      "target": "routes_orders_compare_prices"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/orders.py",
+      "source_location": "L73",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_orders_py",
+      "target": "routes_orders_printer_order"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/orders.py",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_orders_compare_prices",
+      "target": "routes_orders_comparepricesresponse"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/orders.py",
+      "source_location": "L11",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "models_sales_itemweb"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/orders.py",
+      "source_location": "L11",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "models_sales_orderweb"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/orders.py",
+      "source_location": "L12",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "models_items_item"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/orders.py",
+      "source_location": "L12",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "models_items_order"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/orders.py",
+      "source_location": "L12",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/orders.py",
+      "source_location": "L13",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/orders.py",
+      "source_location": "L19",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "config_messages_errorresponse"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/orders.py",
+      "source_location": "L19",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_orders_comparepricesresponse",
+      "target": "config_messages_successresponse"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/orders.py",
+      "source_location": "L109",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_orders_printer_order",
+      "target": "routes_orders_compare_prices"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/orders.py",
+      "source_location": "L45",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_orders_rationale_45",
+      "target": "routes_orders_compare_prices"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/orders.py",
+      "source_location": "L74",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_orders_rationale_74",
+      "target": "routes_orders_printer_order"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/orders.py",
+      "source_location": "L84",
+      "weight": 1.0,
+      "source": "routes_orders_printer_order",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/orders.py",
+      "source_location": "L111",
+      "weight": 1.0,
+      "source": "routes_orders_printer_order",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/orders.py",
+      "source_location": "L272",
+      "weight": 1.0,
+      "source": "routes_orders_printer_order",
+      "target": "models_items_item"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/orders.py",
+      "source_location": "L276",
+      "weight": 1.0,
+      "source": "routes_orders_printer_order",
+      "target": "models_items_order"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/chat.py",
+      "source_location": "L23",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_chat_py",
+      "target": "routes_chat_chat_irc_endpoint"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/chat.py",
+      "source_location": "L143",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_chat_py",
+      "target": "routes_chat_notify_users"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/chat.py",
+      "source_location": "L163",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_chat_py",
+      "target": "routes_chat_get_connected_users"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/chat.py",
+      "source_location": "L174",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_chat_py",
+      "target": "routes_chat_get_online_user_count"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/chat.py",
+      "source_location": "L24",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_chat_rationale_24",
+      "target": "routes_chat_chat_irc_endpoint"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/chat.py",
+      "source_location": "L31",
+      "weight": 1.0,
+      "source": "routes_chat_chat_irc_endpoint",
+      "target": "auth_security_get_current_user"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/chat.py",
+      "source_location": "L160",
+      "weight": 1.0,
+      "source": "routes_chat_notify_users",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/chat.py",
+      "source_location": "L164",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_chat_rationale_164",
+      "target": "routes_chat_get_connected_users"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/chat.py",
+      "source_location": "L169",
+      "weight": 1.0,
+      "source": "routes_chat_get_connected_users",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/chat.py",
+      "source_location": "L175",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_chat_rationale_175",
+      "target": "routes_chat_get_online_user_count"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/chat.py",
+      "source_location": "L177",
+      "weight": 1.0,
+      "source": "routes_chat_get_online_user_count",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L36",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_exists_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L45",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_register_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L113",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_create_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L142",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_force_register_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L167",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_login_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L268",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_guest_login"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L273",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_delete_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L284",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_change_pin"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L305",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_reward_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L322",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_get_cur_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L327",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_get_all_users"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L333",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_get_next_user_id"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L342",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_verify_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L358",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_pin_forgot_get"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L366",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_pin_forgot_post"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L384",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_py",
+      "target": "routes_users_pin_forgot_validate"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L40",
+      "weight": 1.0,
+      "source": "routes_users_exists_user",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L42",
+      "weight": 1.0,
+      "source": "routes_users_exists_user",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L52",
+      "weight": 1.0,
+      "source": "routes_users_register_user",
+      "target": "utils_rut_validate_rut"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L55",
+      "weight": 1.0,
+      "source": "routes_users_register_user",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L104",
+      "weight": 1.0,
+      "source": "routes_users_register_user",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L114",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_rationale_114",
+      "target": "routes_users_create_user"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L117",
+      "weight": 1.0,
+      "source": "routes_users_create_user",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L135",
+      "weight": 1.0,
+      "source": "routes_users_create_user",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L137",
+      "weight": 1.0,
+      "source": "routes_users_create_user",
+      "target": "auth_security_generate_token"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L143",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_rationale_143",
+      "target": "routes_users_force_register_user"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L146",
+      "weight": 1.0,
+      "source": "routes_users_force_register_user",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L160",
+      "weight": 1.0,
+      "source": "routes_users_force_register_user",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L162",
+      "weight": 1.0,
+      "source": "routes_users_force_register_user",
+      "target": "auth_security_generate_token"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L168",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_rationale_168",
+      "target": "routes_users_login_user"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L184",
+      "weight": 1.0,
+      "source": "routes_users_login_user",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L219",
+      "weight": 1.0,
+      "source": "routes_users_login_user",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L225",
+      "weight": 1.0,
+      "source": "routes_users_login_user",
+      "target": "auth_security_generate_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L269",
+      "weight": 1.0,
+      "source": "routes_users_guest_login",
+      "target": "auth_security_generate_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L270",
+      "weight": 1.0,
+      "source": "routes_users_guest_login",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L275",
+      "weight": 1.0,
+      "source": "routes_users_delete_user",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L279",
+      "weight": 1.0,
+      "source": "routes_users_delete_user",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L288",
+      "weight": 1.0,
+      "source": "routes_users_change_pin",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L302",
+      "weight": 1.0,
+      "source": "routes_users_change_pin",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L306",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_rationale_306",
+      "target": "routes_users_reward_user"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L308",
+      "weight": 1.0,
+      "source": "routes_users_reward_user",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L314",
+      "weight": 1.0,
+      "source": "routes_users_reward_user",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L323",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_rationale_323",
+      "target": "routes_users_get_cur_user"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L324",
+      "weight": 1.0,
+      "source": "routes_users_get_cur_user",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L330",
+      "weight": 1.0,
+      "source": "routes_users_get_all_users",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L336",
+      "weight": 1.0,
+      "source": "routes_users_get_next_user_id",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L359",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_rationale_359",
+      "target": "routes_users_pin_forgot_get"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L367",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_rationale_367",
+      "target": "routes_users_pin_forgot_post"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L371",
+      "weight": 1.0,
+      "source": "routes_users_pin_forgot_post",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L381",
+      "weight": 1.0,
+      "source": "routes_users_pin_forgot_post",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/users.py",
+      "source_location": "L385",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_users_rationale_385",
+      "target": "routes_users_pin_forgot_validate"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L388",
+      "weight": 1.0,
+      "source": "routes_users_pin_forgot_validate",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/users.py",
+      "source_location": "L397",
+      "weight": 1.0,
+      "source": "routes_users_pin_forgot_validate",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/store.py",
+      "source_location": "L14",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_store_py",
+      "target": "routes_store_appstatebody"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/store.py",
+      "source_location": "L18",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_store_py",
+      "target": "routes_store_set_store_state"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/store.py",
+      "source_location": "L25",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_store_py",
+      "target": "routes_store_update_cache"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/store.py",
+      "source_location": "L32",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_store_py",
+      "target": "routes_store_get_table_exists"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "routes/store.py",
+      "source_location": "L38",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "routes_store_py",
+      "target": "routes_store_get_store_state"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "routes/store.py",
+      "source_location": "L3",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "routes_store_appstatebody",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/store.py",
+      "source_location": "L22",
+      "weight": 1.0,
+      "source": "routes_store_set_store_state",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/store.py",
+      "source_location": "L29",
+      "weight": 1.0,
+      "source": "routes_store_update_cache",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/store.py",
+      "source_location": "L35",
+      "weight": 1.0,
+      "source": "routes_store_get_table_exists",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "routes/store.py",
+      "source_location": "L39",
+      "weight": 1.0,
+      "source": "routes_store_get_store_state",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L85",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_auth_params"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L94",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L112",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_post"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L130",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_persist_table_order"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L142",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_load_table_order"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L155",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_clear_table_order"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L181",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_to_fudo_product"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L232",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L237",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_clear_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L242",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_fetch_menu"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L258",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_modifiers"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L266",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_categories"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L286",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_category_dict"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L290",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_category"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L302",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_product"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L327",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_products"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L335",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_all_indexed_products"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L348",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_all_products"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L356",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_fetch_tables"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L372",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_to_fudo_table"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L418",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_discover_open_order_for_table"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L436",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_table"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L449",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_active_sale"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L458",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_sale"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L483",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_table_id_for_pending"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L490",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_create_sale"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L520",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_build_line"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L530",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_post_order"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L553",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_create_item"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L602",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_get_table_items"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L645",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_fetch_page"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L685",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_py",
+      "target": "toteat_toteat_smoke_tests"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_1",
+      "target": "toteat_toteat_py"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L96",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get",
+      "target": "toteat_toteat_auth_params"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L114",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_post",
+      "target": "toteat_toteat_auth_params"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L247",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_fetch_menu",
+      "target": "toteat_toteat_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L361",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_fetch_tables",
+      "target": "toteat_toteat_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L420",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_discover_open_order_for_table",
+      "target": "toteat_toteat_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L459",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_sale",
+      "target": "toteat_toteat_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L550",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_post_order",
+      "target": "toteat_toteat_post"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L399",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_to_fudo_table",
+      "target": "toteat_toteat_persist_table_order"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L589",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_create_item",
+      "target": "toteat_toteat_persist_table_order"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L391",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_to_fudo_table",
+      "target": "toteat_toteat_load_table_order"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L569",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_create_item",
+      "target": "toteat_toteat_load_table_order"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L263",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_modifiers",
+      "target": "toteat_toteat_to_fudo_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L308",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_product",
+      "target": "toteat_toteat_to_fudo_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L332",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_products",
+      "target": "toteat_toteat_to_fudo_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L343",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_all_indexed_products",
+      "target": "toteat_toteat_to_fudo_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L703",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_token"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L233",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_233",
+      "target": "toteat_toteat_get_token"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L238",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_238",
+      "target": "toteat_toteat_clear_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L261",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_modifiers",
+      "target": "toteat_toteat_fetch_menu"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L268",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_categories",
+      "target": "toteat_toteat_fetch_menu"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L306",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_product",
+      "target": "toteat_toteat_fetch_menu"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L332",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_products",
+      "target": "toteat_toteat_fetch_menu"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L742",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_modifiers"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L259",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_259",
+      "target": "toteat_toteat_get_modifiers"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L287",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_category_dict",
+      "target": "toteat_toteat_get_categories"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L292",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_category",
+      "target": "toteat_toteat_get_categories"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L706",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_categories"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L267",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_267",
+      "target": "toteat_toteat_get_categories"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L712",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_category_dict"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L313",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_product",
+      "target": "toteat_toteat_get_category"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L730",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "toteat/toteat.py",
+      "source_location": "L310",
+      "weight": 1.0,
+      "source": "toteat_toteat_get_product",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L716",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_products"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L328",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_328",
+      "target": "toteat_toteat_get_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L349",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_all_products",
+      "target": "toteat_toteat_get_all_indexed_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L738",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_all_indexed_products"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L336",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_336",
+      "target": "toteat_toteat_get_all_indexed_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L734",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_all_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L437",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_table",
+      "target": "toteat_toteat_fetch_tables"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L495",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_create_sale",
+      "target": "toteat_toteat_fetch_tables"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L397",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_to_fudo_table",
+      "target": "toteat_toteat_discover_open_order_for_table"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L445",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_table",
+      "target": "toteat_toteat_to_fudo_table"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L373",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_373",
+      "target": "toteat_toteat_to_fudo_table"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L419",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_419",
+      "target": "toteat_toteat_discover_open_order_for_table"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L605",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_table_items",
+      "target": "toteat_toteat_get_table"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L745",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_table"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L608",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_table_items",
+      "target": "toteat_toteat_get_active_sale"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L750",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_active_sale"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L611",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_get_table_items",
+      "target": "toteat_toteat_get_sale"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L755",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_sale"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L491",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_491",
+      "target": "toteat_toteat_create_sale"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L564",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_create_item",
+      "target": "toteat_toteat_build_line"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L572",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_create_item",
+      "target": "toteat_toteat_post_order"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L555",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_555",
+      "target": "toteat_toteat_create_item"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L758",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_smoke_tests",
+      "target": "toteat_toteat_get_table_items"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L603",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_603",
+      "target": "toteat_toteat_get_table_items"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "toteat/toteat.py",
+      "source_location": "L647",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "toteat_toteat_rationale_647",
+      "target": "toteat_toteat_fetch_page"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "utils/rut.py",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "utils_rut_py",
+      "target": "utils_rut_validate_rut"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "utils/rut.py",
+      "source_location": "L2",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "utils_rut_rationale_2",
+      "target": "utils_rut_validate_rut"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "utils/responses.py",
+      "source_location": "L5",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "utils_responses_py",
+      "target": "utils_responses_success_response"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "utils/responses.py",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "utils_responses_py",
+      "target": "utils_responses_error_response"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_showerrormessage"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L9",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_showregistermodal"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_hideregistermodal"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L19",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_rut"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L22",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_body"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L23",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_dv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L39",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_formdata"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L40",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_data"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L77",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_creategloballoader"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L90",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_showgloballoader"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L96",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_register_app_js",
+      "target": "register_app_hidegloballoader"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/register/app.js",
+      "source_location": "L91",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "register_app_showgloballoader",
+      "target": "register_app_creategloballoader"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_o"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_r"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_dh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_zy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L9",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_my"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_oy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ry"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L25",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_dy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L25",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_oo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_by"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_uy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L41",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ly"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_hy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_qy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_be"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_qt"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_hh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_si"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_yy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_gy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_xy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_pa"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_vy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_kt"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ph"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_yh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ky"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_t"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_yo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_gh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_y"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_fy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_wy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_iy"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_vh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_im"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_bo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_eg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_tg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ag"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_lg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ng"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_sg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ro"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_xh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ug"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ms"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_rg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_og"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_cg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_bh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_va"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_pm"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_fg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_dg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_mg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_hg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_pg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_yg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_sh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_eh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_so"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_xg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_bg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_eo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_hs"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_to"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_no"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_g"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_th"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_h"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_jg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_an"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_wg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_za"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_zg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ln"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_nh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_jh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ch"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_li"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_os"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_kg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ah"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_qg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ui"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_yt"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_gg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_lh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_jo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ni"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_nn"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_wh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_vg"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_zh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_mh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ev"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_tv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ks"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_av"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_lv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ya"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_iv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ih"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_go"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_sv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_rh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_constructor"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_fv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_dv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_uh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_xv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_bv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_oi"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ka"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ja"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ci"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_v"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_getderivedstatefromerror"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_getderivedstatefromprops"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_componentdidcatch"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_render"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_jv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_cv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_wv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_zv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_mv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_uo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ov"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_rv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_qh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_uv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_co"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ys"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_hv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_kv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_qv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_yv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_gv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_xo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_vv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_lo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_pv"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ex"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_tx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ai"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ax"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_lx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_nx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ix"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ux"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_basename_d_unstable_usetransitions_x"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_k"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_m"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_u_z_k"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_f"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_te"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_b"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_j"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_z"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_navigator_q_basename_d"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_unstable_usetransitions_d"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_x"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_u"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_cx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_fx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_hx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_px"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_yx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_pl"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_gx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_bx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_sx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_fh"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_wx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_e0"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_mx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_t0"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ox"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_rx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_dx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_di"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_gs"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_xs"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_oe"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_qx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_xx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_zx"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_isrunning_u_preventexittransition_o_toastref_r_eventhandlers_d_playtoast_m"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_me"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_a0"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_gl"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_eb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_at"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_l0"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_tb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ab"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_lb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_nb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ib"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_sb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ub"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_cb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_n0"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_fb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_db"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_mb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_hb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_pb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_yb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_i0"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_gb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_vb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_xb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_bb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_jb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_ds"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "public_main_assets_index_lc7je4q6_js",
+      "target": "assets_index_lc7je4q6_s0"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_r",
+      "target": "assets_index_lc7je4q6_o"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oy",
+      "target": "assets_index_lc7je4q6_o"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_o",
+      "target": "assets_index_lc7je4q6_sg_condition"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oy",
+      "target": "assets_index_lc7je4q6_r"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_by",
+      "target": "assets_index_lc7je4q6_r"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L48",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_r"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_h",
+      "target": "assets_index_lc7je4q6_r"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_zx",
+      "target": "assets_index_lc7je4q6_r"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dh",
+      "target": "assets_index_lc7je4q6_nn"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dh",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dh",
+      "target": "assets_index_lc7je4q6_go"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dh",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dh",
+      "target": "assets_index_lc7je4q6_iv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L9",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_my",
+      "target": "assets_index_lc7je4q6_zy"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_zy",
+      "target": "assets_index_lc7je4q6_ky"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_zy",
+      "target": "assets_index_lc7je4q6_gh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oy",
+      "target": "assets_index_lc7je4q6_m"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oy",
+      "target": "assets_index_lc7je4q6_b"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oy",
+      "target": "assets_index_lc7je4q6"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oy",
+      "target": "assets_index_lc7je4q6_u"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oy",
+      "target": "assets_index_lc7je4q6_k"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oy",
+      "target": "assets_index_lc7je4q6_me"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ry",
+      "target": "assets_index_lc7je4q6_oy"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L41",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_ry"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L25",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dy",
+      "target": "assets_index_lc7je4q6"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L25",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dy",
+      "target": "assets_index_lc7je4q6_te"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L25",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oo",
+      "target": "assets_index_lc7je4q6_dy"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_by",
+      "target": "assets_index_lc7je4q6_oo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L41",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_oo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_by",
+      "target": "assets_index_lc7je4q6_u"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_by",
+      "target": "assets_index_lc7je4q6_m"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_by",
+      "target": "assets_index_lc7je4q6_f"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_by",
+      "target": "assets_index_lc7je4q6_x"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_uy",
+      "target": "assets_index_lc7je4q6_by"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L41",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_uy"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L48",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_b"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L48",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_pa"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L48",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_an"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L48",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_py_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_os"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_jo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ly",
+      "target": "assets_index_lc7je4q6_py_keys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hy",
+      "target": "assets_index_lc7je4q6_ly"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vy",
+      "target": "assets_index_lc7je4q6_qy"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yy",
+      "target": "assets_index_lc7je4q6_qt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gy",
+      "target": "assets_index_lc7je4q6_qt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_db",
+      "target": "assets_index_lc7je4q6_qt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mb",
+      "target": "assets_index_lc7je4q6_qt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_xb",
+      "target": "assets_index_lc7je4q6_qt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_bb",
+      "target": "assets_index_lc7je4q6_qt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sb",
+      "target": "assets_index_lc7je4q6_qt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gy",
+      "target": "assets_index_lc7je4q6_si"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ub",
+      "target": "assets_index_lc7je4q6_si"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mb",
+      "target": "assets_index_lc7je4q6_si"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yb",
+      "target": "assets_index_lc7je4q6_si"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_si"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_px",
+      "target": "assets_index_lc7je4q6_xy"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_pa",
+      "target": "assets_index_lc7je4q6_gh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vh",
+      "target": "assets_index_lc7je4q6_pa"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_im",
+      "target": "assets_index_lc7je4q6_pa"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_bo",
+      "target": "assets_index_lc7je4q6_pa"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_tg",
+      "target": "assets_index_lc7je4q6_pa"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_findmatches",
+      "target": "assets_index_lc7je4q6_pa"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vh",
+      "target": "assets_index_lc7je4q6_kt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eg",
+      "target": "assets_index_lc7je4q6_kt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_create",
+      "target": "assets_index_lc7je4q6_kt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_add",
+      "target": "assets_index_lc7je4q6_kt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_search",
+      "target": "assets_index_lc7je4q6_kt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_kt",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_search",
+      "target": "assets_index_lc7je4q6_ph"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ph",
+      "target": "assets_index_lc7je4q6_py_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ky",
+      "target": "assets_index_lc7je4q6_yh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_tg",
+      "target": "assets_index_lc7je4q6_yh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ev",
+      "target": "assets_index_lc7je4q6_yh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dv",
+      "target": "assets_index_lc7je4q6_yh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_addstring",
+      "target": "assets_index_lc7je4q6_t"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jg",
+      "target": "assets_index_lc7je4q6_t"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_add",
+      "target": "assets_index_lc7je4q6_t"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_findmatches",
+      "target": "assets_index_lc7je4q6_t"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_addstring",
+      "target": "assets_index_lc7je4q6_yo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_v",
+      "target": "assets_index_lc7je4q6_gh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gh",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gh",
+      "target": "assets_index_lc7je4q6_oi"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gh",
+      "target": "assets_index_lc7je4q6_qh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gh",
+      "target": "assets_index_lc7je4q6_ka"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gh",
+      "target": "assets_index_lc7je4q6_nn"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gh",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gh",
+      "target": "assets_index_lc7je4q6_wh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gh",
+      "target": "assets_index_lc7je4q6_yt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gh",
+      "target": "assets_index_lc7je4q6_av"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_bv",
+      "target": "assets_index_lc7je4q6_gh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_og",
+      "target": "assets_index_lc7je4q6_fy"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vh",
+      "target": "assets_index_lc7je4q6_wy"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vh",
+      "target": "assets_index_lc7je4q6_iy"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_py",
+      "target": "assets_index_lc7je4q6_py_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_py",
+      "target": "assets_index_lc7je4q6_py_get"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_py",
+      "target": "assets_index_lc7je4q6_py_keys"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_py",
+      "target": "assets_index_lc7je4q6_py_tojson"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_addstring",
+      "target": "assets_index_lc7je4q6_py_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jv",
+      "target": "assets_index_lc7je4q6_py_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_wx",
+      "target": "assets_index_lc7je4q6_py_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mx",
+      "target": "assets_index_lc7je4q6_py_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_n0",
+      "target": "assets_index_lc7je4q6_py_get"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_th",
+      "target": "assets_index_lc7je4q6_py_keys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_av",
+      "target": "assets_index_lc7je4q6_py_keys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_iv",
+      "target": "assets_index_lc7je4q6_py_keys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vh",
+      "target": "assets_index_lc7je4q6_im"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vh",
+      "target": "assets_index_lc7je4q6_bo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vh",
+      "target": "assets_index_lc7je4q6_lo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ax",
+      "target": "assets_index_lc7je4q6_vh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_nx",
+      "target": "assets_index_lc7je4q6_vh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_bo",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_wv",
+      "target": "assets_index_lc7je4q6_bo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_zv",
+      "target": "assets_index_lc7je4q6_bo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mv",
+      "target": "assets_index_lc7je4q6_bo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_tg",
+      "target": "assets_index_lc7je4q6_no"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_search",
+      "target": "assets_index_lc7je4q6_ag"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_search",
+      "target": "assets_index_lc7je4q6_ng"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sg",
+      "target": "assets_index_lc7je4q6_sg_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sg",
+      "target": "assets_index_lc7je4q6_sg_condition"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sg",
+      "target": "assets_index_lc7je4q6_sg_searchin"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_constructor",
+      "target": "assets_index_lc7je4q6_sg"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_setsources"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_setindexrecords"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_setkeys"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_create"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_add"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_removeat"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_getvalueforitematkeyid"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_size"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_addstring"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_addobject"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro",
+      "target": "assets_index_lc7je4q6_ro_tojson"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_constructor",
+      "target": "assets_index_lc7je4q6_ro_setindexrecords"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_xh",
+      "target": "assets_index_lc7je4q6_ro_setsources"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ug",
+      "target": "assets_index_lc7je4q6_ro_setindexrecords"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_xh",
+      "target": "assets_index_lc7je4q6_ro_setkeys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ug",
+      "target": "assets_index_lc7je4q6_ro_setkeys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_xh",
+      "target": "assets_index_lc7je4q6_ro_create"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_add",
+      "target": "assets_index_lc7je4q6_ro_size"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_add",
+      "target": "assets_index_lc7je4q6_ro_addstring"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_add",
+      "target": "assets_index_lc7je4q6_ro_addobject"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ro_removeat",
+      "target": "assets_index_lc7je4q6_ro_size"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_setcollection",
+      "target": "assets_index_lc7je4q6_xh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_og",
+      "target": "assets_index_lc7je4q6_ms"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_og",
+      "target": "assets_index_lc7je4q6_rg"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_rg",
+      "target": "assets_index_lc7je4q6_za"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_rg",
+      "target": "assets_index_lc7je4q6_ln"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_og",
+      "target": "assets_index_lc7je4q6_za"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_og",
+      "target": "assets_index_lc7je4q6_ln"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_bh",
+      "target": "assets_index_lc7je4q6_bh_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_bh",
+      "target": "assets_index_lc7je4q6_bh_searchin"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_bh_constructor",
+      "target": "assets_index_lc7je4q6_b"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_va",
+      "target": "assets_index_lc7je4q6_va_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_va",
+      "target": "assets_index_lc7je4q6_va_ismultimatch"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_va",
+      "target": "assets_index_lc7je4q6_va_issinglematch"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_va",
+      "target": "assets_index_lc7je4q6_va_search"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_va_ismultimatch",
+      "target": "assets_index_lc7je4q6_pm"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_va_issinglematch",
+      "target": "assets_index_lc7je4q6_pm"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fg",
+      "target": "assets_index_lc7je4q6_fg_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fg",
+      "target": "assets_index_lc7je4q6_fg_type"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fg",
+      "target": "assets_index_lc7je4q6_fg_multiregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fg",
+      "target": "assets_index_lc7je4q6_fg_singleregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fg",
+      "target": "assets_index_lc7je4q6_fg_search"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dg",
+      "target": "assets_index_lc7je4q6_dg_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dg",
+      "target": "assets_index_lc7je4q6_dg_type"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dg",
+      "target": "assets_index_lc7je4q6_dg_multiregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dg",
+      "target": "assets_index_lc7je4q6_dg_singleregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dg",
+      "target": "assets_index_lc7je4q6_dg_search"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dg",
+      "target": "assets_index_lc7je4q6_za"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dg",
+      "target": "assets_index_lc7je4q6_ln"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mg",
+      "target": "assets_index_lc7je4q6_mg_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mg",
+      "target": "assets_index_lc7je4q6_mg_type"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mg",
+      "target": "assets_index_lc7je4q6_mg_multiregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mg",
+      "target": "assets_index_lc7je4q6_mg_singleregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mg",
+      "target": "assets_index_lc7je4q6_mg_search"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hg",
+      "target": "assets_index_lc7je4q6_hg_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hg",
+      "target": "assets_index_lc7je4q6_hg_type"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hg",
+      "target": "assets_index_lc7je4q6_hg_multiregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hg",
+      "target": "assets_index_lc7je4q6_hg_singleregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hg",
+      "target": "assets_index_lc7je4q6_hg_search"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_pg",
+      "target": "assets_index_lc7je4q6_pg_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_pg",
+      "target": "assets_index_lc7je4q6_pg_type"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_pg",
+      "target": "assets_index_lc7je4q6_pg_multiregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_pg",
+      "target": "assets_index_lc7je4q6_pg_singleregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_pg",
+      "target": "assets_index_lc7je4q6_pg_search"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yg",
+      "target": "assets_index_lc7je4q6_yg_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yg",
+      "target": "assets_index_lc7je4q6_yg_type"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yg",
+      "target": "assets_index_lc7je4q6_yg_multiregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yg",
+      "target": "assets_index_lc7je4q6_yg_singleregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yg",
+      "target": "assets_index_lc7je4q6_yg_search"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yg",
+      "target": "assets_index_lc7je4q6_xg"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ux",
+      "target": "assets_index_lc7je4q6_yg"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sh",
+      "target": "assets_index_lc7je4q6_sh_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sh",
+      "target": "assets_index_lc7je4q6_sh_type"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sh",
+      "target": "assets_index_lc7je4q6_sh_multiregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sh",
+      "target": "assets_index_lc7je4q6_sh_singleregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sh",
+      "target": "assets_index_lc7je4q6_sh_search"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sh_search",
+      "target": "assets_index_lc7je4q6_sg_searchin"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eh",
+      "target": "assets_index_lc7je4q6_eh_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eh",
+      "target": "assets_index_lc7je4q6_eh_type"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eh",
+      "target": "assets_index_lc7je4q6_eh_multiregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eh",
+      "target": "assets_index_lc7je4q6_eh_singleregex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eh",
+      "target": "assets_index_lc7je4q6_eh_search"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sg_constructor",
+      "target": "assets_index_lc7je4q6_xg"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_bg",
+      "target": "assets_index_lc7je4q6_za"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_bg",
+      "target": "assets_index_lc7je4q6_ln"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sg_searchin",
+      "target": "assets_index_lc7je4q6_an_search"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_findmatches",
+      "target": "assets_index_lc7je4q6_sg_searchin"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_h",
+      "target": "assets_index_lc7je4q6_no"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_h",
+      "target": "assets_index_lc7je4q6_th"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_searchlogical",
+      "target": "assets_index_lc7je4q6_h"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_setcollection"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_add"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_remove"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_removeat"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_getindex"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_search"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_searchstringlist"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_searchlogical"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_searchobjectlist"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an",
+      "target": "assets_index_lc7je4q6_an_findmatches"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_constructor",
+      "target": "assets_index_lc7je4q6_an_setcollection"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_rx",
+      "target": "assets_index_lc7je4q6_an_add"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_remove",
+      "target": "assets_index_lc7je4q6_u"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_remove",
+      "target": "assets_index_lc7je4q6_an_removeat"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_search",
+      "target": "assets_index_lc7je4q6_an_searchstringlist"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_search",
+      "target": "assets_index_lc7je4q6_an_searchobjectlist"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_an_search",
+      "target": "assets_index_lc7je4q6_an_searchlogical"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_px",
+      "target": "assets_index_lc7je4q6_wg"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_nh",
+      "target": "assets_index_lc7je4q6_za"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jh",
+      "target": "assets_index_lc7je4q6_za"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vg",
+      "target": "assets_index_lc7je4q6_zg"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_nh",
+      "target": "assets_index_lc7je4q6_ln"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jh",
+      "target": "assets_index_lc7je4q6_ln"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jh",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jh",
+      "target": "assets_index_lc7je4q6_cx"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hx",
+      "target": "assets_index_lc7je4q6_jh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yx",
+      "target": "assets_index_lc7je4q6_jh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_px",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ab",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ib",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sb",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ub",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mb",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fh",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yb",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gb",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ds",
+      "target": "assets_index_lc7je4q6_tt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_qg",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_qg",
+      "target": "assets_index_lc7je4q6_ni"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_px",
+      "target": "assets_index_lc7je4q6_ui"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ub",
+      "target": "assets_index_lc7je4q6_ui"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mb",
+      "target": "assets_index_lc7je4q6_ui"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_ui"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ds",
+      "target": "assets_index_lc7je4q6_ui"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sv",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ka",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ev",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_av",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_wv",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_zv",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mv",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_uo",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_uv",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_px",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yx",
+      "target": "assets_index_lc7je4q6_le"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_av",
+      "target": "assets_index_lc7je4q6_yt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_lv",
+      "target": "assets_index_lc7je4q6_yt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_iv",
+      "target": "assets_index_lc7je4q6_yt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_uh",
+      "target": "assets_index_lc7je4q6_yt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_qh",
+      "target": "assets_index_lc7je4q6_yt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_uv",
+      "target": "assets_index_lc7je4q6_yt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_xo",
+      "target": "assets_index_lc7je4q6_yt"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jo",
+      "target": "assets_index_lc7je4q6_gg"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jo",
+      "target": "assets_index_lc7je4q6_nn"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_px",
+      "target": "assets_index_lc7je4q6_ni"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vg",
+      "target": "assets_index_lc7je4q6_nn"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_iv",
+      "target": "assets_index_lc7je4q6_nn"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_uv",
+      "target": "assets_index_lc7je4q6_nn"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_wh",
+      "target": "assets_index_lc7je4q6_vg"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dx",
+      "target": "assets_index_lc7je4q6_wh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vg",
+      "target": "assets_index_lc7je4q6_ya"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vg",
+      "target": "assets_index_lc7je4q6_zh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vg",
+      "target": "assets_index_lc7je4q6_lv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vg",
+      "target": "assets_index_lc7je4q6_tv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_zh",
+      "target": "assets_index_lc7je4q6_lo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_lx",
+      "target": "assets_index_lc7je4q6_zh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_nx",
+      "target": "assets_index_lc7je4q6_zh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mh",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ja",
+      "target": "assets_index_lc7je4q6_ev"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ev",
+      "target": "assets_index_lc7je4q6_oi"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ev",
+      "target": "assets_index_lc7je4q6_ka"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ev",
+      "target": "assets_index_lc7je4q6_rh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_tv",
+      "target": "assets_index_lc7je4q6_ks"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_tv",
+      "target": "assets_index_lc7je4q6_uv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_tv",
+      "target": "assets_index_lc7je4q6_rv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_tv",
+      "target": "assets_index_lc7je4q6_fv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ks",
+      "target": "assets_index_lc7je4q6_av"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yx",
+      "target": "assets_index_lc7je4q6_ks"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_av",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_lv",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_lv",
+      "target": "assets_index_lc7je4q6_v"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_lv",
+      "target": "assets_index_lc7je4q6_co"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_uh",
+      "target": "assets_index_lc7je4q6_ya"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vv",
+      "target": "assets_index_lc7je4q6_ya"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_zv",
+      "target": "assets_index_lc7je4q6_ya"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yx",
+      "target": "assets_index_lc7je4q6_ya"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_iv",
+      "target": "assets_index_lc7je4q6_ih"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_iv",
+      "target": "assets_index_lc7je4q6_rv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_iv",
+      "target": "assets_index_lc7je4q6_ov"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ih",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_wx",
+      "target": "assets_index_lc7je4q6_ih"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_e0",
+      "target": "assets_index_lc7je4q6_ih"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_rh",
+      "target": "assets_index_lc7je4q6_sv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sv",
+      "target": "assets_index_lc7je4q6_oi"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sv",
+      "target": "assets_index_lc7je4q6_ci"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ci",
+      "target": "assets_index_lc7je4q6_rh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_rh",
+      "target": "assets_index_lc7je4q6_fh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fv",
+      "target": "assets_index_lc7je4q6_wv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dv",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ja",
+      "target": "assets_index_lc7je4q6_dv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dv",
+      "target": "assets_index_lc7je4q6_wv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_dv",
+      "target": "assets_index_lc7je4q6_uo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jv",
+      "target": "assets_index_lc7je4q6_uh"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_jv",
+      "target": "assets_index_lc7je4q6_xv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vv",
+      "target": "assets_index_lc7je4q6_xv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_render",
+      "target": "assets_index_lc7je4q6_bv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ka",
+      "target": "assets_index_lc7je4q6_oi"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_uv",
+      "target": "assets_index_lc7je4q6_oi"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L60",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ci",
+      "target": "assets_index_lc7je4q6_ka"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_nx",
+      "target": "assets_index_lc7je4q6_ka"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fx",
+      "target": "assets_index_lc7je4q6_ka"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_px",
+      "target": "assets_index_lc7je4q6_ka"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ix",
+      "target": "assets_index_lc7je4q6_ka"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fx",
+      "target": "assets_index_lc7je4q6_ja"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ix",
+      "target": "assets_index_lc7je4q6_ja"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_sb",
+      "target": "assets_index_lc7je4q6_ja"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ub",
+      "target": "assets_index_lc7je4q6_ja"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mb",
+      "target": "assets_index_lc7je4q6_ja"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fh",
+      "target": "assets_index_lc7je4q6_ja"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gb",
+      "target": "assets_index_lc7je4q6_ja"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_ja"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_fx",
+      "target": "assets_index_lc7je4q6_ci"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_px",
+      "target": "assets_index_lc7je4q6_ci"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yx",
+      "target": "assets_index_lc7je4q6_ci"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_v",
+      "target": "assets_index_lc7je4q6_pv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_componentdidcatch",
+      "target": "assets_index_lc7je4q6_eb_onerror"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_rv",
+      "target": "assets_index_lc7je4q6_zv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_uo",
+      "target": "assets_index_lc7je4q6_mv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ov",
+      "target": "assets_index_lc7je4q6_uo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_rv",
+      "target": "assets_index_lc7je4q6_uo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hx",
+      "target": "assets_index_lc7je4q6_ov"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hv",
+      "target": "assets_index_lc7je4q6_ys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_kv",
+      "target": "assets_index_lc7je4q6_ys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_qv",
+      "target": "assets_index_lc7je4q6_ys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vv",
+      "target": "assets_index_lc7je4q6_ys"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vv",
+      "target": "assets_index_lc7je4q6_hv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vv",
+      "target": "assets_index_lc7je4q6_kv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vv",
+      "target": "assets_index_lc7je4q6_qv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gv",
+      "target": "assets_index_lc7je4q6_yv"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_vv",
+      "target": "assets_index_lc7je4q6_xo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ex",
+      "target": "assets_index_lc7je4q6_lo"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_nx",
+      "target": "assets_index_lc7je4q6_ex"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_tx",
+      "target": "assets_index_lc7je4q6_ai"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_nx",
+      "target": "assets_index_lc7je4q6_lx"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_lx",
+      "target": "assets_index_lc7je4q6_ox"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_wx",
+      "target": "assets_index_lc7je4q6_lx"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ux",
+      "target": "assets_index_lc7je4q6_wx"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_x",
+      "target": "assets_index_lc7je4q6_m"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_u",
+      "target": "assets_index_lc7je4q6_f"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_x",
+      "target": "assets_index_lc7je4q6_pl"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_hx",
+      "target": "assets_index_lc7je4q6_mx"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_px",
+      "target": "assets_index_lc7je4q6_gl"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_di",
+      "target": "assets_index_lc7je4q6_e0"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_gs",
+      "target": "assets_index_lc7je4q6_dx"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oe",
+      "target": "assets_index_lc7je4q6_di"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_oe",
+      "target": "assets_index_lc7je4q6_gs"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ab",
+      "target": "assets_index_lc7je4q6_gl"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ub",
+      "target": "assets_index_lc7je4q6_gl"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_mb",
+      "target": "assets_index_lc7je4q6_gl"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_yb",
+      "target": "assets_index_lc7je4q6_gl"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_gl"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ds",
+      "target": "assets_index_lc7je4q6_gl"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_constructor"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_connect"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_send"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_sendmessage"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_sendaimessage"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_sendmention"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_leave"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_disconnect"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_onmessage"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_onerror"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_onclose"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_onmention"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_getconnectedusers"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_getonlinecount"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb",
+      "target": "assets_index_lc7je4q6_eb_mention"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb_join",
+      "target": "assets_index_lc7je4q6_eb_send"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb_sendmessage",
+      "target": "assets_index_lc7je4q6_eb_send"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb_sendaimessage",
+      "target": "assets_index_lc7je4q6_eb_send"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb_sendmention",
+      "target": "assets_index_lc7je4q6_eb_send"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb_leave",
+      "target": "assets_index_lc7je4q6_eb_send"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_eb_mention",
+      "target": "assets_index_lc7je4q6_eb_send"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_cb",
+      "target": "assets_index_lc7je4q6_eb_join"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_ib",
+      "target": "assets_index_lc7je4q6_lb"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "public/main/assets/index-LC7je4Q6.js",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "assets_index_lc7je4q6_n0",
+      "target": "assets_index_lc7je4q6_cb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L19",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_in_time_py",
+      "target": "middleware_in_time_emptyuser"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L23",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_in_time_py",
+      "target": "middleware_in_time_intimemiddleware"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_in_time_rationale_1",
+      "target": "middleware_in_time_py"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L20",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_in_time_emptyuser",
+      "target": "middleware_in_time_emptyuser_init"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L67",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_in_time_intimemiddleware_dispatch",
+      "target": "middleware_in_time_emptyuser"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L23",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_in_time_intimemiddleware",
+      "target": "basehttpmiddleware"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L29",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_in_time_intimemiddleware",
+      "target": "middleware_in_time_intimemiddleware_dispatch"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/in_time.py",
+      "source_location": "L24",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_in_time_rationale_24",
+      "target": "middleware_in_time_intimemiddleware"
+    },
+    {
+      "relation": "inherits",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L9",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_no_cache_nocachemiddleware",
+      "target": "basehttpmiddleware"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "middleware/in_time.py",
+      "source_location": "L62",
+      "weight": 1.0,
+      "source": "middleware_in_time_intimemiddleware_dispatch",
+      "target": "auth_security_get_current_user"
+    },
+    {
+      "relation": "imports_from",
+      "context": "import",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/__init__.py",
+      "source_location": "L4",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_init_py",
+      "target": "middleware_no_cache_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L9",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_no_cache_py",
+      "target": "middleware_no_cache_nocachemiddleware"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_no_cache_rationale_1",
+      "target": "middleware_no_cache_py"
+    },
+    {
+      "relation": "method",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L15",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_no_cache_nocachemiddleware",
+      "target": "middleware_no_cache_nocachemiddleware_dispatch"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "middleware/no_cache.py",
+      "source_location": "L10",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "middleware_no_cache_rationale_10",
+      "target": "middleware_no_cache_nocachemiddleware"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L30",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L85",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_modifiers"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L94",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_categories"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L103",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_category_dict"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L110",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_category"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L126",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_product"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L153",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_products"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L163",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_fetch_page"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L183",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_all_indexed_products"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L234",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_all_products"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L239",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_page_bounds"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L269",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_table"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L349",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_table_items"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L395",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_sale"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L407",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_create_sale"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L443",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_create_item"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L480",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_get_active_sale"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L486",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_py",
+      "target": "fudo_fudo_clear_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L86",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_modifiers",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L95",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_categories",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L111",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_category",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L128",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_product",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L155",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_products",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L185",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_all_indexed_products",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L270",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_table",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L350",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_table_items",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L397",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_sale",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L409",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_create_sale",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L445",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_create_item",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L31",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_rationale_31",
+      "target": "fudo_fudo_get_token"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L104",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_category_dict",
+      "target": "fudo_fudo_get_categories"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L141",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_product",
+      "target": "fudo_fudo_get_category"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "INFERRED",
+      "confidence_score": 0.8,
+      "source_file": "fudo/fudo.py",
+      "source_location": "L138",
+      "weight": 1.0,
+      "source": "fudo_fudo_get_product",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L200",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_all_indexed_products",
+      "target": "fudo_fudo_fetch_page"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L164",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_rationale_164",
+      "target": "fudo_fudo_fetch_page"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L236",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_all_products",
+      "target": "fudo_fudo_get_all_indexed_products"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L235",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_rationale_235",
+      "target": "fudo_fudo_get_all_products"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L280",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_table",
+      "target": "fudo_fudo_get_page_bounds"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L240",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_rationale_240",
+      "target": "fudo_fudo_get_page_bounds"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L351",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_table_items",
+      "target": "fudo_fudo_get_table"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L355",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_table_items",
+      "target": "fudo_fudo_get_active_sale"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L359",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_get_table_items",
+      "target": "fudo_fudo_get_sale"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "fudo/fudo.py",
+      "source_location": "L487",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "fudo_fudo_rationale_487",
+      "target": "fudo_fudo_clear_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L23",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_py",
+      "target": "auth_security_tokendata"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L27",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_py",
+      "target": "auth_security_hash_password"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L31",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_py",
+      "target": "auth_security_generate_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L50",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_py",
+      "target": "auth_security_create_access_token"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L63",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_py",
+      "target": "auth_security_authenticate_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L84",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_py",
+      "target": "auth_security_get_current_user"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L105",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_get_current_user",
+      "target": "auth_security_tokendata"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "auth/security.py",
+      "source_location": "L12",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "auth_security_tokendata",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L28",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_rationale_28",
+      "target": "auth_security_hash_password"
+    },
+    {
+      "relation": "calls",
+      "context": "call",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L38",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_generate_token",
+      "target": "auth_security_create_access_token"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L32",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_rationale_32",
+      "target": "auth_security_generate_token"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L51",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_rationale_51",
+      "target": "auth_security_create_access_token"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "auth/security.py",
+      "source_location": "L64",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "auth_security_rationale_64",
+      "target": "auth_security_authenticate_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "config/settings.py",
+      "source_location": "L58",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "config_settings_py",
+      "target": "config_settings_validate_config"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "config/messages.py",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "config_messages_py",
+      "target": "config_messages_errorresponse"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "config/messages.py",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "config_messages_py",
+      "target": "config_messages_successresponse"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "config/messages.py",
+      "source_location": "L32",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "config_messages_py",
+      "target": "config_messages_userresponse"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "config/messages.py",
+      "source_location": "L2",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "config_messages_rationale_2",
+      "target": "config_messages_errorresponse"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "config/messages.py",
+      "source_location": "L18",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "config_messages_rationale_18",
+      "target": "config_messages_successresponse"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "config/messages.py",
+      "source_location": "L33",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "config_messages_rationale_33",
+      "target": "config_messages_userresponse"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L5",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_py",
+      "target": "models_items_item"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_py",
+      "target": "models_items_order"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L22",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_py",
+      "target": "models_items_orderbilling"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L28",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_py",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L44",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_py",
+      "target": "models_items_producteditrequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L55",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_py",
+      "target": "models_items_productcreaterequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L67",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_py",
+      "target": "models_items_producttypes"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L73",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_py",
+      "target": "models_items_get_all_types"
+    },
+    {
+      "relation": "imports_from",
+      "context": "import",
+      "confidence": "EXTRACTED",
+      "source_file": "models/__init__.py",
+      "source_location": "L4",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_init_py",
+      "target": "models_items_py"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L14",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_rationale_14",
+      "target": "models_items_order"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L23",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_rationale_23",
+      "target": "models_items_orderbilling"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L29",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_rationale_29",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "models/sales.py",
+      "source_location": "L5",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "models_sales_promotion",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "models/sales.py",
+      "source_location": "L5",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "models_sales_itemweb",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "models/sales.py",
+      "source_location": "L5",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "models_sales_orderweb",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "uses",
+      "confidence": "INFERRED",
+      "source_file": "models/sales.py",
+      "source_location": "L5",
+      "weight": 0.8,
+      "confidence_score": 0.5,
+      "source": "models_sales_sale",
+      "target": "models_items_product"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L45",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_rationale_45",
+      "target": "models_items_producteditrequest"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L56",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_rationale_56",
+      "target": "models_items_productcreaterequest"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "models/items.py",
+      "source_location": "L68",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_items_rationale_68",
+      "target": "models_items_producttypes"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/blacklist.py",
+      "source_location": "L4",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_blacklist_py",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "imports_from",
+      "context": "import",
+      "confidence": "EXTRACTED",
+      "source_file": "models/__init__.py",
+      "source_location": "L6",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_init_py",
+      "target": "models_blacklist_py"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "models/blacklist.py",
+      "source_location": "L5",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_blacklist_rationale_5",
+      "target": "models_blacklist_blacklist"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/sales.py",
+      "source_location": "L8",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_sales_py",
+      "target": "models_sales_promotion"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/sales.py",
+      "source_location": "L12",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_sales_py",
+      "target": "models_sales_itemweb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/sales.py",
+      "source_location": "L20",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_sales_py",
+      "target": "models_sales_orderweb"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/sales.py",
+      "source_location": "L27",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_sales_py",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "imports_from",
+      "context": "import",
+      "confidence": "EXTRACTED",
+      "source_file": "models/__init__.py",
+      "source_location": "L5",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_init_py",
+      "target": "models_sales_py"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "models/sales.py",
+      "source_location": "L28",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_sales_rationale_28",
+      "target": "models_sales_sale"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/chat.py",
+      "source_location": "L6",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_chat_py",
+      "target": "models_chat_message"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/chat.py",
+      "source_location": "L11",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_chat_py",
+      "target": "models_chat_chatcompletionrequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/chat.py",
+      "source_location": "L15",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_chat_py",
+      "target": "models_chat_notifyrequest"
+    },
+    {
+      "relation": "imports_from",
+      "context": "import",
+      "confidence": "EXTRACTED",
+      "source_file": "models/__init__.py",
+      "source_location": "L7",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_init_py",
+      "target": "models_chat_py"
+    },
+    {
+      "relation": "imports_from",
+      "context": "import",
+      "confidence": "EXTRACTED",
+      "source_file": "models/__init__.py",
+      "source_location": "L3",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_init_py",
+      "target": "models_user_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L5",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_useridrequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L8",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_registeruserrequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L13",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_forceregisteruserrequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L19",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_userrewardrequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L22",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_pinuserrequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L25",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L37",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_usermail"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L39",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_loginrequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L43",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_pinrecoveryrequest"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L48",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_py",
+      "target": "models_user_pinrecoveryvalidaterequest"
+    },
+    {
+      "relation": "rationale_for",
+      "confidence": "EXTRACTED",
+      "source_file": "models/user.py",
+      "source_location": "L26",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "models_user_rationale_26",
+      "target": "models_user_user"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "claude_md",
+      "target": "pedidos_express_server_claude_claude_md"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L5",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_claude_md",
+      "target": "pedidos_express_server_claude_project_overview"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L9",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_claude_md",
+      "target": "pedidos_express_server_claude_commands"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L32",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_claude_md",
+      "target": "pedidos_express_server_claude_architecture"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L59",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_claude_md",
+      "target": "pedidos_express_server_claude_commit_convention"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L62",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_claude_md",
+      "target": "pedidos_express_server_claude_database"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L65",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_claude_md",
+      "target": "pedidos_express_server_claude_graphify"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L11",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_commands",
+      "target": "pedidos_express_server_claude_development"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L16",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_commands",
+      "target": "pedidos_express_server_claude_production"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L21",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_commands",
+      "target": "pedidos_express_server_claude_frontend_tailwind_css"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L27",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_commands",
+      "target": "pedidos_express_server_claude_requirements"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L12",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_development",
+      "target": "pedidos_express_server_claude_codeblock_1"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_production",
+      "target": "pedidos_express_server_claude_codeblock_2"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L22",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_frontend_tailwind_css",
+      "target": "pedidos_express_server_claude_codeblock_3"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L28",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_requirements",
+      "target": "pedidos_express_server_claude_codeblock_4"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L34",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_architecture",
+      "target": "pedidos_express_server_claude_entry_point_flow"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L37",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_architecture",
+      "target": "pedidos_express_server_claude_key_directories"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L47",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_architecture",
+      "target": "pedidos_express_server_claude_dependencies"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L53",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_architecture",
+      "target": "pedidos_express_server_claude_route_protection"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "CLAUDE.md",
+      "source_location": "L56",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_claude_architecture",
+      "target": "pedidos_express_server_claude_configuration"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "readme_md",
+      "target": "pedidos_express_server_readme_biergarten_klein_sistema_de_pedidos_express"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L5",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_biergarten_klein_sistema_de_pedidos_express",
+      "target": "pedidos_express_server_readme_puesta_en_marcha_getting_started"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L75",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_biergarten_klein_sistema_de_pedidos_express",
+      "target": "pedidos_express_server_readme_resumen_de_la_arquitectura"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L109",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_biergarten_klein_sistema_de_pedidos_express",
+      "target": "pedidos_express_server_readme_caracter_sticas_principales"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L136",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_biergarten_klein_sistema_de_pedidos_express",
+      "target": "pedidos_express_server_readme_api_endpoints_resumen"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L169",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_biergarten_klein_sistema_de_pedidos_express",
+      "target": "pedidos_express_server_readme_tecnolog_as_utilizadas"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L179",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_biergarten_klein_sistema_de_pedidos_express",
+      "target": "pedidos_express_server_readme_logging_y_monitoreo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L9",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_puesta_en_marcha_getting_started",
+      "target": "pedidos_express_server_readme_1_prerrequisitos"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L15",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_puesta_en_marcha_getting_started",
+      "target": "pedidos_express_server_readme_2_instalaci_n"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L30",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_puesta_en_marcha_getting_started",
+      "target": "pedidos_express_server_readme_3_variables_de_entorno_env"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L59",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_puesta_en_marcha_getting_started",
+      "target": "pedidos_express_server_readme_4_ejecuci_n"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L61",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_4_ejecuci_n",
+      "target": "pedidos_express_server_readme_modo_desarrollo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L69",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_4_ejecuci_n",
+      "target": "pedidos_express_server_readme_modo_producci_n"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L111",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_caracter_sticas_principales",
+      "target": "pedidos_express_server_readme_asistente_de_ia_camilo_klein"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L118",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_caracter_sticas_principales",
+      "target": "pedidos_express_server_readme_gesti_n_de_pedidos_y_productos"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L124",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_caracter_sticas_principales",
+      "target": "pedidos_express_server_readme_integraciones_de_hardware_y_externas"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L130",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_caracter_sticas_principales",
+      "target": "pedidos_express_server_readme_seguridad"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L140",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_api_endpoints_resumen",
+      "target": "pedidos_express_server_readme_chat_asistente_ia"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L145",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_api_endpoints_resumen",
+      "target": "pedidos_express_server_readme_productos"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L149",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_api_endpoints_resumen",
+      "target": "pedidos_express_server_readme_pedidos"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L153",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_api_endpoints_resumen",
+      "target": "pedidos_express_server_readme_usuarios"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L158",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_api_endpoints_resumen",
+      "target": "pedidos_express_server_readme_ventas_sales"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "README.md",
+      "source_location": "L162",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "pedidos_express_server_readme_api_endpoints_resumen",
+      "target": "pedidos_express_server_readme_frontend"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L1",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_md",
+      "target": "docs_migracion_fudo_toteat_auditor_a_fudo_toteat_e_impresoras"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L15",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_auditor_a_fudo_toteat_e_impresoras",
+      "target": "docs_migracion_fudo_toteat_1_auditor_a_del_uso_de_la_api_de_fudo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L121",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_auditor_a_fudo_toteat_e_impresoras",
+      "target": "docs_migracion_fudo_toteat_2_sistema_de_impresoras"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L185",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_auditor_a_fudo_toteat_e_impresoras",
+      "target": "docs_migracion_fudo_toteat_3_plan_de_migraci_n_usando_toteat_toteat_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L17",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_auditor_a_del_uso_de_la_api_de_fudo",
+      "target": "docs_migracion_fudo_toteat_1_1_funciones_definidas_en_fudo_fudo_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L39",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_auditor_a_del_uso_de_la_api_de_fudo",
+      "target": "docs_migracion_fudo_toteat_1_2_uso_por_archivo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L93",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_auditor_a_del_uso_de_la_api_de_fudo",
+      "target": "docs_migracion_fudo_toteat_1_3_resumen_por_funci_n"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L110",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_auditor_a_del_uso_de_la_api_de_fudo",
+      "target": "docs_migracion_fudo_toteat_1_4_transformaciones_notables"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L41",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_2_uso_por_archivo",
+      "target": "docs_migracion_fudo_toteat_routes_orders_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L49",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_2_uso_por_archivo",
+      "target": "docs_migracion_fudo_toteat_routes_products_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L55",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_2_uso_por_archivo",
+      "target": "docs_migracion_fudo_toteat_routes_store_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L61",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_2_uso_por_archivo",
+      "target": "docs_migracion_fudo_toteat_services_fudo_service_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L71",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_2_uso_por_archivo",
+      "target": "docs_migracion_fudo_toteat_services_data_service_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L79",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_2_uso_por_archivo",
+      "target": "docs_migracion_fudo_toteat_load_products_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L85",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_1_2_uso_por_archivo",
+      "target": "docs_migracion_fudo_toteat_update_prices_py"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L123",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_2_sistema_de_impresoras",
+      "target": "docs_migracion_fudo_toteat_2_1_arquitectura"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L136",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_2_sistema_de_impresoras",
+      "target": "docs_migracion_fudo_toteat_2_2_endpoints_del_servidor_de_impresi_n"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L145",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_2_sistema_de_impresoras",
+      "target": "docs_migracion_fudo_toteat_2_3_validaci_n_de_conectividad"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L164",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_2_sistema_de_impresoras",
+      "target": "docs_migracion_fudo_toteat_2_4_acoplamiento_con_fudo"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L177",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_2_sistema_de_impresoras",
+      "target": "docs_migracion_fudo_toteat_2_5_configuraci_n"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L149",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_2_3_validaci_n_de_conectividad",
+      "target": "docs_migracion_fudo_toteat_codeblock_1"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L187",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_3_plan_de_migraci_n_usando_toteat_toteat_py",
+      "target": "docs_migracion_fudo_toteat_3_1_variables_de_entorno_nuevas"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L199",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_3_plan_de_migraci_n_usando_toteat_toteat_py",
+      "target": "docs_migracion_fudo_toteat_3_2_equivalencias"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L219",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_3_plan_de_migraci_n_usando_toteat_toteat_py",
+      "target": "docs_migracion_fudo_toteat_3_3_diferencias_funcionales_conocidas"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L243",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_3_plan_de_migraci_n_usando_toteat_toteat_py",
+      "target": "docs_migracion_fudo_toteat_3_4_auditor_a_r_pida_post_migraci_n"
+    },
+    {
+      "relation": "contains",
+      "confidence": "EXTRACTED",
+      "source_file": "docs/migracion_fudo_toteat.md",
+      "source_location": "L189",
+      "weight": 1.0,
+      "confidence_score": 1.0,
+      "source": "docs_migracion_fudo_toteat_3_1_variables_de_entorno_nuevas",
+      "target": "docs_migracion_fudo_toteat_codeblock_2"
+    }
+  ],
+  "hyperedges": [],
+  "built_at_commit": "a705140e60182ad24745815135e0a073dc20cd86"
+}

+ 234 - 0
graphify-out/manifest.json

@@ -0,0 +1,234 @@
+{
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/tailwind.config.js": {
+    "mtime": 1762890977.3634777,
+    "hash": "8307315e39f886d2851088db1757cf1a"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/app.py": {
+    "mtime": 1778170732.3472488,
+    "hash": "053e4ed541cc8747344b9a639d3179db"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/load_products.py": {
+    "mtime": 1767120213.3989608,
+    "hash": "edf8291ef71752ec12089b6463f97357"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/main.py": {
+    "mtime": 1765052229.1607435,
+    "hash": "fc5bae2b7dcf612062e3a6765e8c1308"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/update_prices.py": {
+    "mtime": 1765824851.557378,
+    "hash": "561b843fc6f375ddc31e502b342117c0"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/enums/locations.py": {
+    "mtime": 1756237836.5030775,
+    "hash": "bf4bab2e089dc14556c2f811dddcef70"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/services/recovery_service.py": {
+    "mtime": 1757100103.2425692,
+    "hash": "e4d22dad0760afac5591f387d6344960"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/services/fudo_service.py": {
+    "mtime": 1778172018.6169572,
+    "hash": "7b1f876487f5a3bf71ceca8be0994986"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/services/email_service.py": {
+    "mtime": 1756412358.8915386,
+    "hash": "b5e2120809b3a593269b13f719eefdef"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/services/print_service.py": {
+    "mtime": 1768590367.525294,
+    "hash": "fdb1bd42ab4d304bdda53379442c5e16"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/services/data_service.py": {
+    "mtime": 1778172044.597122,
+    "hash": "ff7dbf5614c86d2c66caf89d76a9e9f2"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/services/__init__.py": {
+    "mtime": 1756237836.5110774,
+    "hash": "458d5498cdd8d39f522533b1fd9f5915"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/services/openai_service/openai_service.py": {
+    "mtime": 1768926151.258409,
+    "hash": "2ec227e5bf7f1e10e89bf6db0796302b"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/services/openai_service/openai_tools.py": {
+    "mtime": 1756237836.5110774,
+    "hash": "f9b529c23e6616d487db7b480cc6337b"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/services/openai_service/__init__.py": {
+    "mtime": 1756237836.5110774,
+    "hash": "d41d8cd98f00b204e9800998ecf8427e"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/products.py": {
+    "mtime": 1778262800.4228997,
+    "hash": "92f9c48fe3defa9d5081bad2d9761135"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/sales.py": {
+    "mtime": 1763384442.0109785,
+    "hash": "9023b679acd293dbd6a0b7a63f3485e1"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/debug.py": {
+    "mtime": 1764077663.0372975,
+    "hash": "ba5a644ca393d15a3cbc6641a6fa7224"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/static.py": {
+    "mtime": 1756237836.5110774,
+    "hash": "2bbcb468c3c807e987a703659b29a283"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/orders.py": {
+    "mtime": 1778170248.9660318,
+    "hash": "062324dbeb69921cb2813ee498e959e9"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/chat.py": {
+    "mtime": 1768920901.3978286,
+    "hash": "5a82bb977e965b8c2a87f7188d7bc1ac"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/users.py": {
+    "mtime": 1764102343.5797725,
+    "hash": "f84020c7e87549f054af3738ca3c0922"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/__init__.py": {
+    "mtime": 1756237836.5110774,
+    "hash": "2743b3003db7486ac3a0c0fd4ee0af2b"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/routes/store.py": {
+    "mtime": 1769536057.9173653,
+    "hash": "cfcbbf914ec75b67a88d32fdbd8b89fd"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/toteat/toteat.py": {
+    "mtime": 1778172025.6610026,
+    "hash": "0015c514561d6251e6033727f0b45775"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/toteat/__init__.py": {
+    "mtime": 1778020176.4461818,
+    "hash": "d41d8cd98f00b204e9800998ecf8427e"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/utils/rut.py": {
+    "mtime": 1756237836.5110774,
+    "hash": "60af8e99ef1020f2b7179a65c1b87a1e"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/utils/responses.py": {
+    "mtime": 1763386451.1126938,
+    "hash": "12a99b29dbce694ce2433c9899ade7e9"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/public/register/app.js": {
+    "mtime": 1758116102.2570305,
+    "hash": "528e5c7a724714433833e8ebfb1c44ee"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/public/main/assets/index-LC7je4Q6.js": {
+    "mtime": 1778102581.908683,
+    "hash": "b03ac98b9e143ab2b6f93817eabd3616"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/middleware/in_time.py": {
+    "mtime": 1768912158.7288435,
+    "hash": "c4bfab82747cf91d8170be2eeea1ddee"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/middleware/__init__.py": {
+    "mtime": 1756237836.5030775,
+    "hash": "8d0c1e465b7ce7dad5fcbe300f309df1"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/middleware/no_cache.py": {
+    "mtime": 1756237836.5030775,
+    "hash": "94d7f1d49a71d61e08245f27b0a536e4"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/fudo/fudo.py": {
+    "mtime": 1778004245.5919104,
+    "hash": "ecd50e9e04e5cff0586e04c145415bdf"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/fudo/__init__.py": {
+    "mtime": 1756237836.5030775,
+    "hash": "d41d8cd98f00b204e9800998ecf8427e"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/auth/security.py": {
+    "mtime": 1764102255.5073476,
+    "hash": "47227927e14d66366ef7d79672a2bb35"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/auth/__init__.py": {
+    "mtime": 1756237836.4990773,
+    "hash": "5d529fcbbafbc16324b09926f270cdcd"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/config/settings.py": {
+    "mtime": 1769525009.0121613,
+    "hash": "9632021157b46254be962a0de26e57aa"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/config/messages.py": {
+    "mtime": 1769524083.0334446,
+    "hash": "45391b0f4c03ecbb2d9f75541c52c2f5"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/config/mails.py": {
+    "mtime": 1763654231.8472965,
+    "hash": "ab278016cd41e1138dc8358679717ccb"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/config/__init__.py": {
+    "mtime": 1756237836.5030775,
+    "hash": "3a58b93b405f22a920ab4f38f8c2655e"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/data/product_category.py": {
+    "mtime": 1765052077.4402568,
+    "hash": "1c9529636ef05144e49c306215ba4a47"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/models/items.py": {
+    "mtime": 1778171934.2483714,
+    "hash": "eff97a41842a6a24aa6e2bf9c0b0745b"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/models/blacklist.py": {
+    "mtime": 1756237836.5030775,
+    "hash": "3e0befaa30aea30c9c9e6b98b6c06850"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/models/sales.py": {
+    "mtime": 1778171938.4524026,
+    "hash": "cbe4089f7ef2676f64e79c3acdb4a0a1"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/models/chat.py": {
+    "mtime": 1757947864.642183,
+    "hash": "cb457922cb3ca1166041a75016e150d2"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/models/__init__.py": {
+    "mtime": 1756237836.5030775,
+    "hash": "a0d52ae11abac7dc790fbfeaf73c9399"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/models/user.py": {
+    "mtime": 1763748068.3435695,
+    "hash": "195a16c5e137d6fb4e67ae1784bd6190"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/CLAUDE.md": {
+    "mtime": 1778264306.1771152,
+    "hash": "fe415d03639ba6741ef9e67646d3f65f"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/README.md": {
+    "mtime": 1762883526.3718605,
+    "hash": "45d12f87470855e87641acb6b4f77ff2"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/requirements.txt": {
+    "mtime": 1756308964.1616006,
+    "hash": "64e6d339d8a7501aa530a09903e73087"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/AGENTS.md": {
+    "mtime": 1778007376.8584204,
+    "hash": "d41d8cd98f00b204e9800998ecf8427e"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/docs/migracion_fudo_toteat.md": {
+    "mtime": 1778025896.0729542,
+    "hash": "6a740ebe3920fd975584c5ddae4c1e3a"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/public/pin_forgot.html": {
+    "mtime": 1763649280.8842797,
+    "hash": "84a4733e7a36c573b9b9f95aa675df29"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/public/verify.html": {
+    "mtime": 1763502171.7367015,
+    "hash": "242d4e4977890b1c2dafd8c24d651873"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/public/register/index.html": {
+    "mtime": 1764166660.6922688,
+    "hash": "34b122457af796da3a25dbf0fe4f90c6"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/public/main/index.html": {
+    "mtime": 1778102581.908683,
+    "hash": "8ef61c1fb58de23dcc1c78a0ca5637e6"
+  },
+  "/home/superti/workspace/pedidos_express/pedidos_express_server/public/main/assets/no_image-DuvbomyT.png": {
+    "mtime": 1778102581.908683,
+    "hash": "91c1270e48b96f1fc28d0002f513bc0b"
+  }
+}

+ 1 - 0
graphify-out/needs_update

@@ -0,0 +1 @@
+1

+ 1 - 1
models/items.py

@@ -7,7 +7,7 @@ class Item(BaseModel):
     price: float
     quantity: int
     comment: str
-    kitchen_id: int
+    kitchen_id: Optional[str] = None
 
 
 class Order(BaseModel):

+ 1 - 1
models/sales.py

@@ -10,7 +10,7 @@ class Promotion(BaseModel):
     price: Optional[float] = None
 
 class ItemWeb(BaseModel):
-    id: int
+    id: str
     price: int
     quantity: int
     comment: str

+ 9 - 107
routes/orders.py

@@ -1,31 +1,21 @@
-import time
 from logging import getLogger
-from threading import Thread
 from typing import List
 from uuid import uuid4
 
 from pydantic import BaseModel
 
-from enums.locations import Locations
-from fastapi import HTTPException, APIRouter, Depends
-from fastapi.responses import JSONResponse
+from fastapi import APIRouter, Depends
 
-from fudo import fudo
+from toteat import toteat as fudo
 from models.sales import ItemWeb, OrderWeb
-from models.items import Item, Order, OrderBilling, Product
+from models.items import Product
 from models.user import User
 from services.fudo_service import add_product_to_fudo
-from services.email_service import get_email_sender
-import services.print_service as ps
 from services.data_service import DataServiceFactory
-from config.mails import PRINTER_DISCONNECTED_MAIL
-from config.messages import ErrorResponse, SuccessResponse, UserResponse
-from config.settings import DEVELOPMENT
+from config.messages import ErrorResponse, SuccessResponse
 from auth.security import get_current_user
-from data.product_category import CAT_ITEMS
 from utils.responses import error_response, success_response
-from datetime import datetime
-import subprocess
+
 logger = getLogger(__name__)
 
 # Data services initialization
@@ -33,17 +23,16 @@ user_data_service = DataServiceFactory.get_user_service()
 product_data_service = DataServiceFactory.get_product_service()
 sale_data_service = DataServiceFactory.get_sales_service()
 
-# Global variables
-printer_orders = []
 order_router = APIRouter()
 name_promo = "Cervezas"
 
+
 class ComparePricesResponse(BaseModel):
     product: Product
     oldPrice: int
     newPrice: int
     isAvailable: bool
-    
+
 
 def compare_prices(products: List[Product], items: List[ItemWeb]) -> list:
     """Compare prices of products and items and return the cheapest product"""
@@ -69,10 +58,9 @@ def compare_prices(products: List[Product], items: List[ItemWeb]) -> list:
                     isAvailable=True
                 )
             )
-            
-    
+
     return list(map(lambda x: x.model_dump(), prices))
-    
+
 
 @order_router.post("/send")
 async def printer_order(order: OrderWeb, current_user: User = Depends(get_current_user)):
@@ -115,62 +103,6 @@ async def printer_order(order: OrderWeb, current_user: User = Depends(get_curren
     if prices:
         return success_response(data=prices, message="El estado de los productos y items coincide con el de la venta", status_code=409)
 
-    printers = {
-        "ServerPrincipal": "10.10.12.3"
-    }
-
-    # Lista para almacenar impresoras fallidas directamente
-    failed_printers = []
-
-    # Validación de estado
-    for name, ip in printers.items():
-        try:
-            # '-c 1' para Linux/Mac, '-W 2' timeout de 2 segundos para evitar bloqueos largos
-            # stdout=subprocess.DEVNULL silencia la salida en consola
-            response = subprocess.run(
-                ["/usr/bin/ping", "-c", "1", "-W", "10", ip],
-                stdout=subprocess.DEVNULL,
-                stderr=subprocess.DEVNULL,
-            )
-            
-            if response.returncode != 0:
-                failed_printers.append(name)
-                
-        except Exception as e:
-            logger.error(f"Error executing ping to {name}: {e}")
-            failed_printers.append(name)
-    print(failed_printers)
-    # Procesamiento de errores
-    if failed_printers:
-        logger.error(f"Printer is not connected: {failed_printers}. Order from user {current_user.email} cannot be processed.")
-        
-        try:
-            locations_str = ", ".join(failed_printers)
-            
-            email_thread = Thread(
-                target=get_email_sender().send_email,
-                args=(
-                    PRINTER_DISCONNECTED_MAIL["subject"].format(location=locations_str),
-                    PRINTER_DISCONNECTED_MAIL["body"].format(
-                        location=locations_str, 
-                        timestamp=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
-                    ),
-                    ["erwinjacimino2003@gmail.com", "mompyn@gmail.com"]
-                ),
-                daemon=True
-            )
-            email_thread.start()
-            
-            return error_response(message=ErrorResponse.PRINTER_DISCONNECTED, status_code=424)
-            
-        except Exception as e:
-            logger.error(f"Error sending notification: {e}")
-            # Retornamos el error original de impresora, no el del email
-            return error_response(message=ErrorResponse.PRINTER_DISCONNECTED, status_code=424)
-
-
-    # Input validation
- 
     # Add products to Fudo
     product_errors = []
 
@@ -271,36 +203,6 @@ async def printer_order(order: OrderWeb, current_user: User = Depends(get_curren
         
         return error_response(message=error_msg, status_code=500)
 
-    # Print order
-    try:
-        print(products)
-        items = [ Item(name=product.name, price=product.price, quantity=item.quantity, comment=item.comment, kitchen_id=product.kitchen_id) for item, product in zip(items, products)]#type: ignore
-
-
-        if items:
-            ps.print_order(Order(table=table, items=items, customerName=current_user.name, totalAmount=order.totalAmount, orderDate=order.orderDate))
-         
-        
-        logger.info(f"Order printed successfully for table {table}")
-        
-        
-    except Exception as e:
-        error_msg = f"Error printing order for table {table}: {e}"
-        logger.error(error_msg)
-        return error_response(message=error_msg, status_code=500)  
-        # Don't fail the order for print issues, just log it
-
-    logger.info(f"Logging order for table {table} with sale ID {sale}, products= {[(item.name, item.quantity) for item in  items]}")
-        
     logger.info(f"Order processing completed successfully for table {table}, sale ID: {sale}")
     return success_response(data={"new_progress": new_progress}, message=SuccessResponse.ORDER_SUCCESS)
 
-@order_router.post("/billing")
-async def billing_order(order: OrderBilling, current_user: User = Depends(get_current_user)):
-    """Process billing order"""
-    
-    printing = ps.print_billing(order)
-    if not printing:
-        return error_response(message=ErrorResponse.PRINTER_DISCONNECTED, status_code=424)
-    
-    return success_response(data=printing, message=SuccessResponse.ORDER_SUCCESS)

+ 18 - 24
routes/products.py

@@ -15,15 +15,12 @@ Permission levels:
 """
 
 # Standard library imports
-from math import prod
 from logging import getLogger
 import time
 from typing import Optional
 
 # Third-party imports
 from fastapi import APIRouter, Depends, Query
-from fastapi.responses import JSONResponse
-from h11 import Data
 
 # Local imports
 from auth.security import get_current_user
@@ -31,7 +28,6 @@ from models.user import User
 from models.items import Product, ProductCreateRequest, ProductEditRequest
 from services.data_service import DataServiceFactory
 from config.messages import ErrorResponse, SuccessResponse, UserResponse
-from services.print_service import print_ticket
 from utils.responses import error_response, success_response
 from services.fudo_service import get_products_by_table
 
@@ -45,9 +41,10 @@ user_data_service = DataServiceFactory.get_user_service()
 # Create router instance for product-related endpoints
 product_router = APIRouter()
 
+
 def apply_promo_price(product: Product):
     """Apply promotional price to a product if applicable."""
-    #dia de la semana 1-7
+    # dia de la semana 1-7
     day_of_week = time.localtime().tm_wday + 1  # Convert to 1-7 range
     product_dict = product.model_dump(exclude={"promo_id", "promo_price", "promo_day"})
     if product.promo_id and product.promo_price and product.promo_day == day_of_week:
@@ -58,45 +55,43 @@ def apply_promo_price(product: Product):
 
     return product_dict
 
+
 @product_router.get("/")
 async def get_products(status: Optional[int] = Query(None), current_user = Depends(get_current_user)):
     """
     Get all products - Available to all authenticated users
-    
+
     Returns:
         JSONResponse: List of all products with success message
     """
     logger.debug(f"Current user: {current_user.email if current_user else 'Anonymous'}")
     logger.info("Fetching all products")
-    
+
     # Retrieve all products and convert to dictionary format
-    all_products =  await product_data_service.get_all()
+    all_products = await product_data_service.get_all()
     all_products = list(map(apply_promo_price, all_products))
 
-
     if status is not None:
-        # Filter products by status if provided
-        if status == 1:
-            all_products = [product for product in all_products if product['status'] == status]
         all_products = [product for product in all_products if product['status'] == status]
 
     return success_response({"products": all_products}, message= SuccessResponse.PRODUCTS_FETCH_SUCCESS)
 
+
 @product_router.get("/{product_id}")
-async def get_product(product_id: int, current_user = Depends(get_current_user)):
+async def get_product(product_id: str, current_user = Depends(get_current_user)):
     """
     Get a specific product by ID - Available to all authenticated users
-    
+
     Args:
         product_id (int): The ID of the product to retrieve
         current_user: Authenticated user (dependency injection)
-        
+
     Returns:
         JSONResponse: Product data if found, error message if not found
     """
     logger.debug(f"Current user: {current_user.email if current_user else 'Anonymous'}")
     logger.info(f"Fetching product with ID: {product_id}")
-    
+
     # Attempt to find product by ID
     product = product_data_service.get_by_id(product_id)
     if product:
@@ -105,20 +100,19 @@ async def get_product(product_id: int, current_user = Depends(get_current_user))
     # Return 404 if product not found
     return error_response(message = UserResponse.USER_NOT_FOUND.format(user_id=product_id), status_code=404)
 
+
 @product_router.get("/free-beer/{table_id}")
 async def get_free_beer(table_id: int, current_user:User = Depends(get_current_user)):
     """
     Get the free beer product - Available to all authenticated users
-    
+
     Returns:
         JSONResponse: Free beer product data if found, error message if not found
     """
     logger.debug(f"Current user: {current_user.email if current_user else 'Anonymous'}")
     logger.info("Fetching free beer ticket")
-    
+
     if current_user.reward_progress >= 100:
-        print_ticket(table_id)
-        
         user_data_service.set_reward_progress(current_user.id, 0)
         
         return success_response(message= SuccessResponse.REWARD_SUCCESS, status_code=200)
@@ -152,7 +146,7 @@ async def create_product(product: ProductCreateRequest, current_user = Depends(g
     return error_response(message= UserResponse.NOT_PERMITTED, status_code=403)
 
 @product_router.patch("/{product_id}/swap-status")
-async def switch_product_status(product_id: int, current_user = Depends(get_current_user)): 
+async def switch_product_status(product_id: str, current_user = Depends(get_current_user)):
     """
     Toggle product status between active/inactive - Requires manager permissions (level >= 1)
     
@@ -183,7 +177,7 @@ async def switch_product_status(product_id: int, current_user = Depends(get_curr
 # HIGH RISK OPERATIONS - Requires permissions == 2 (Admin level only)
 
 @product_router.delete("/{product_id}")
-async def delete_product(product_id: int, current_user = Depends(get_current_user)):
+async def delete_product(product_id: str, current_user = Depends(get_current_user)):
     """
     Delete a product permanently - Requires admin permissions (level == 2)
     
@@ -210,7 +204,7 @@ async def delete_product(product_id: int, current_user = Depends(get_current_use
     return error_response(message=UserResponse.NOT_PERMITTED, status_code=403)
 
 @product_router.patch("/{product_id}/edit")
-async def edit_product(product_id: int, product: ProductEditRequest, current_user = Depends(get_current_user)):
+async def edit_product(product_id: str, product: ProductEditRequest, current_user = Depends(get_current_user)):
     """
     Edit an existing product - Requires manager permissions (level >= 1)
     
@@ -252,4 +246,4 @@ async def get_table_items(table_number: int, _: User = Depends(get_current_user)
         return error_response(message=ErrorResponse.SALE_NOT_FOUND, status_code=404)
     
     logger.info(f"Items for table {table_number} retrieved successfully")
-    return success_response(data=items, message=SuccessResponse.PRODUCTS_FETCH_SUCCESS)
+    return success_response(data=items, message=SuccessResponse.PRODUCTS_FETCH_SUCCESS)

+ 1 - 1
routes/store.py

@@ -5,7 +5,7 @@ from pydantic import BaseModel
 from auth.security import get_current_user
 from config import settings
 from utils.responses import success_response
-from fudo.fudo import get_table
+from toteat.toteat import get_table
 from services.data_service import ProductDataService
 
 

+ 0 - 2
routes/users.py

@@ -19,7 +19,6 @@ from config.settings import APPNAME, DEVELOPMENT, PIN_KEY
 from models.user import ForceRegisterUserRequest, LoginRequest, PinRecoveryRequest, PinRecoveryValidateRequest, PinUserRequest, RegisterUserRequest, User, UserIDRequest, UserMail, UserRewardRequest
 from services.data_service import BlacklistDataService, UserDataService
 from services.email_service import get_email_sender
-from services.print_service import print_ticket
 import services.recovery_service as recovery_service
 from utils.responses import error_response, success_response
 from utils.rut import validate_rut
@@ -310,7 +309,6 @@ async def reward_user(request: UserRewardRequest, user: User = Depends(get_curre
         return error_response(message=UserResponse.USER_NOT_FOUND.format(user_id=request.id), status_code=404)
     
     user_data_service.set_reward_progress(user.id, 0)
-    print_ticket(request.tableNumber)
     return success_response(data={
         "id": user.id,
         "name": user.name,

+ 29 - 29
services/data_service.py

@@ -1,13 +1,12 @@
 import json
-from math import log
 import os
 import re
 import psycopg2
 from config.settings import POSTGRESQL_DB_CONFIG
-from typing import List, Dict, Optional, Any
-from abc import ABC, abstractmethod
+from typing import List, Dict, Optional
+from abc import ABC
 from config.settings import BG_DATA_PATH, IMAGE_PATH, PRODUCT_DATA_PATH, CURRENT_URL
-from fudo.fudo import get_all_products, get_category_dict
+from toteat.toteat import get_all_products, get_category_dict
 from logging import getLogger
 from datetime import datetime
 from cryptography.fernet import Fernet
@@ -500,7 +499,7 @@ class ProductDataService(BaseDataService):
     }
     """Service for managing products"""
     #region Create
-    def create(self, id: int, name: str, price: float, type: Optional[str] = None, description: Optional[str] = None, image: Optional[str] = None, status: int = 1) -> int:
+    def create(self, id: str, name: str, price: float, type: Optional[str] = None, description: Optional[str] = None, image: Optional[str] = None, status: int = 1) -> Optional[str]:
         """Add a new product to the database"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -522,10 +521,10 @@ class ProductDataService(BaseDataService):
                 return product_id[0]
             else:
                 logger.error("Failed to add product.")
-                return -1
+                return None
         except psycopg2.Error as e:
             logger.error(f"Failed to add product: {e}")
-            return -1
+            return None
         finally:
             conn.close()
     def load_data(self, products: List[Dict[str, str]]) -> None:
@@ -535,7 +534,7 @@ class ProductDataService(BaseDataService):
         for product in products:
             try:
                 self.create(
-                    id=int(product['id']),
+                    id=str(product['id']),
                     name=product['name'],
                     price=int(product['price']),
                     type=product.get('type'),
@@ -570,7 +569,7 @@ class ProductDataService(BaseDataService):
             try:
                 return_list.append(
                     Product(
-                        id=int(product['id']),
+                        id=str(product['id']),
                         name=product['attributes']['name'],
                     type=self.category_dict[categoryID],
                     description=product['attributes'].get('description'),
@@ -590,7 +589,7 @@ class ProductDataService(BaseDataService):
             self.product_cache['products'] = return_list
         return return_list
     
-    def  get_by_id(self, product_id: int) -> Optional[Product]:
+    def get_by_id(self, product_id: str) -> Optional[Product]:
         """Get product by ID"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -656,7 +655,7 @@ class ProductDataService(BaseDataService):
             ) for product in products
         ]
     
-    async def get_products(self, product_ids: List[int]) -> List[Product]:
+    async def get_products(self, product_ids: List[str]) -> List[Product]:
         """Get multiple products by their IDs"""
         products = await self.get_all()
         products = list(filter(lambda x: x.id in product_ids, products))
@@ -674,7 +673,7 @@ class ProductDataService(BaseDataService):
             img_file.write(b64.b64decode(base64.split(',')[1]))
         return CURRENT_URL+"/images/" + image  # Return url
 
-    def update(self, product_id: int, name=None, type=None, description=None, price=None, image=None, status=None) -> bool:
+    def update(self, product_id: str, name=None, type=None, description=None, price=None, image=None, status=None) -> bool:
         """Update product information"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -776,15 +775,15 @@ class ProductDataService(BaseDataService):
             ) for product in products
         ]
     
-    def activate_product(self, product_id: int) -> bool:
+    def activate_product(self, product_id: str) -> bool:
         """Activate a product (set status to 1)"""
         return self.update(product_id, status=1)
-    
-    def deactivate_product(self, product_id: int) -> bool:
+
+    def deactivate_product(self, product_id: str) -> bool:
         """Deactivate a product (set status to 0)"""
         return self.update(product_id, status=0)
-    
-    def is_product_active(self, product_id: int) -> Optional[bool]:
+
+    def is_product_active(self, product_id: str) -> Optional[bool]:
         """Check if a product is active"""
         product = self.get_by_id(product_id)
         if product:
@@ -795,7 +794,7 @@ class ProductDataService(BaseDataService):
         self.product_cache['products'] = self.get_all()
     #endregion
     #region Delete
-    def delete(self, product_id: int) -> bool:
+    def delete(self, product_id: str) -> bool:
         """Delete a product from the database"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -817,7 +816,7 @@ class ProductDataService(BaseDataService):
 class SalesDataService(BaseDataService):
     """Service for managing sales"""
     #region C
-    def create(self, user_id: int, fudo_id: str, total: float, table: int, product_ids: List[int], quantities: Optional[List[int]] = None) -> int:
+    def create(self, user_id: int, fudo_id: str, total: float, table: int, product_ids: List[str], quantities: Optional[List[int]] = None) -> int:
         """Create a new sale with products and quantities"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -859,7 +858,7 @@ class SalesDataService(BaseDataService):
             conn.close()
     
 
-    def add_product_to_sale(self, sale_id: int, product_id: int, quantity: int = 1) -> bool:
+    def add_product_to_sale(self, sale_id: int, product_id: str, quantity: int = 1) -> bool:
         """Add a product to an existing sale with quantity"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -879,7 +878,7 @@ class SalesDataService(BaseDataService):
         finally:
             conn.close()
     
-    def add_products_to_sale(self, sale_id: int, product_ids: List[int], quantities: Optional[List[int]] = None) -> bool:
+    def add_products_to_sale(self, sale_id: int, product_ids: List[str], quantities: Optional[List[int]] = None) -> bool:
         """Add multiple products to an existing sale with quantities"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -1082,7 +1081,7 @@ class SalesDataService(BaseDataService):
             ) for sale in sales
         ]
     
-    def update_product_quantity(self, sale_id: int, product_id: int, new_quantity: int) -> bool:
+    def update_product_quantity(self, sale_id: int, product_id: str, new_quantity: int) -> bool:
         """Update quantity of a product in a sale"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -1102,7 +1101,7 @@ class SalesDataService(BaseDataService):
         finally:
             conn.close()
     
-    def get_product_quantity_in_sale(self, sale_id: int, product_id: int) -> Optional[int]:
+    def get_product_quantity_in_sale(self, sale_id: int, product_id: str) -> Optional[int]:
         """Get quantity of a specific product in a sale"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -1169,7 +1168,7 @@ class SalesDataService(BaseDataService):
         finally:
             conn.close()
     
-    def remove_product_from_sale(self, sale_id: int, product_id: int) -> bool:
+    def remove_product_from_sale(self, sale_id: int, product_id: str) -> bool:
         """Remove a product from a sale (removes all quantity)"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -1186,7 +1185,7 @@ class SalesDataService(BaseDataService):
             logger.error(f"Failed to remove product {product_id} from sale {sale_id}.")
         return success
     
-    def decrease_product_quantity(self, sale_id: int, product_id: int, decrease_by: int = 1) -> bool:
+    def decrease_product_quantity(self, sale_id: int, product_id: str, decrease_by: int = 1) -> bool:
         """Decrease quantity of a product in a sale, removes if quantity becomes 0 or less"""
         conn = self._get_connection()
         cursor = conn.cursor()
@@ -1325,7 +1324,7 @@ def initialize_db():
     logger.info("Creando tabla de products...")
     cursor.execute("""
     CREATE TABLE IF NOT EXISTS products (
-        id INTEGER PRIMARY KEY,
+        id TEXT PRIMARY KEY,
         name VARCHAR(255) NOT NULL,
         type VARCHAR(100) NOT NULL,
         description TEXT NOT NULL,
@@ -1357,7 +1356,7 @@ def initialize_db():
     cursor.execute("""
     CREATE TABLE IF NOT EXISTS sale_products (
         sale_id INTEGER NOT NULL,
-        product_id INTEGER NOT NULL,
+        product_id TEXT NOT NULL,
         quantity INTEGER NOT NULL DEFAULT 1,
         FOREIGN KEY (sale_id) REFERENCES sales(id),
         FOREIGN KEY (product_id) REFERENCES products(id)
@@ -1388,6 +1387,7 @@ def initialize_db():
 data_bg_loaded = load_bg_data()
 
 if __name__ == "__main__":
+    import asyncio
     data_service = ProductDataService()
-    products = data_service.get_all()
-    print(products[0])
+    products = asyncio.run(data_service.get_all())
+    print(products[0])

+ 2 - 2
services/fudo_service.py

@@ -1,9 +1,9 @@
-import fudo.fudo as fd
+import toteat.toteat as fd
 from logging import getLogger
 
 logger = getLogger(__name__)
 
-def add_product_to_fudo(product_id: int, quantity: int, table_number: int, comment=None):
+def add_product_to_fudo(product_id: str, quantity: int, table_number: int, comment=None):
     """Add a product to Fudo system"""
     table = fd.get_table(table_number)
     if not table:

+ 0 - 176
services/print_service.py

@@ -1,176 +0,0 @@
-from typing import Optional
-import requests
-from logging import getLogger
-from config.settings import DEVELOPMENT
-from models.sales import OrderWeb, ItemWeb
-from services.data_service import DataServiceFactory
-from models.items import Order, OrderBilling
-from enums.locations import Locations
-
-logger = getLogger(__name__)
-user_data_service = DataServiceFactory.get_user_service()
-
-def get_printer_url() -> str:
-    if DEVELOPMENT:
-        return "http://10.10.12.3:8000"
-    else: 
-        return "http://10.10.12.3:8000"
-
-def print_order(order: Order):
-    """Send order to printer"""
-    logger.info(f"Attempting to print order for table {order.table}")
-    printer_url = get_printer_url()
-
-    try:
-        if not order.items or not order.table:
-            error_msg = "Order must have items and a table number"
-            logger.error(error_msg)
-            
-            raise ValueError(error_msg)
-        
-        # Prepare the order data for printing
-        order_data = {
-            "table": order.table,
-            "items": [{"name": item.name, "price": item.price, "quantity": item.quantity, "comment": item.comment, "kitchen_id": item.kitchen_id} for item in order.items],
-            "user": order.customerName,
-            "totalAmount": order.totalAmount,
-            "orderDate": order.orderDate
-        }
-        
-        logger.info(f"Order data prepared for printing: table={order.table}, items={order.items}, total={order.totalAmount}")
-         
-
-        # Send the order data to the printer service
-        response = requests.post(
-            f"{printer_url}/print", 
-            json=order_data, 
-            headers={"Authorization": f"Bearer PRINTER123cerveza@"},
-            timeout=10
-        )
-
-        if response.status_code != 200:
-            error_msg = f"Failed to print order: HTTP {response.status_code} - {response.text}"
-            logger.error(error_msg)
-            
-            raise Exception(error_msg)
-
-        logger.info(f"Order printed successfully for table {order.table}")
-        
-        return response.json()  # Return the response from the printer service
-        
-    except requests.RequestException as e:
-        error_msg = f"Network error while printing order for table {order.table}: {e}"
-        logger.error(error_msg)
-        
-        raise Exception(error_msg)
-    except Exception as e:
-        error_msg = f"Unexpected error while printing order for table {order.table}: {e}"
-        logger.error(error_msg)
-        
-        raise
-
-def print_ticket(number_table: int):
-    """Send a ticket to the printer"""
-    logger.info(f"Attempting to print ticket for table {number_table}")
-    printer_url = get_printer_url()
-    try:
-
-        
-        response = requests.get(
-            f"{printer_url}/ticket/{number_table}", 
-            headers={"Authorization": f"Bearer PRINTER123cerveza@"},
-            timeout=10
-        )
-
-        if response.status_code != 200:
-            error_msg = f"Failed to print ticket for table {number_table}: HTTP {response.status_code} - {response.text}"
-            logger.error(error_msg)
-            
-            raise Exception(error_msg)
-
-        logger.info(f"Ticket printed successfully for table {number_table}")
-        
-        
-        return response.json()  # Return the response from the printer service
-        
-    except requests.RequestException as e:
-        error_msg = f"Network error while printing ticket for table {number_table}: {e}"
-        logger.error(error_msg)
-        raise Exception(error_msg)
-    except Exception as e:
-        error_msg = f"Unexpected error while printing ticket for table {number_table}: {e}"
-        logger.error(error_msg)
-        
-        raise
-
-def print_billing(order: OrderBilling):
-    """Send billing order to printer"""
-    logger.info(f"Attempting to print billing order for table {order.table}")
-    printer_url = get_printer_url()
-
-    try:
-        if not order.table:
-            error_msg = "Order must have a table number"
-            logger.error(error_msg)
-            
-            raise ValueError(error_msg)
-        
-        
-        logger.info(f"Order data prepared for printing: table={order.table}, payment={order.payment}")
-         
-
-        # Send the order data to the printer service
-        response = requests.get(
-            f"{printer_url}/billing/{order.table}/{order.payment}",
-            headers={"Authorization": f"Bearer PRINTER123cerveza@"},
-            timeout=1000
-        )
-
-        if response.status_code != 200:
-            error_msg = f"Failed to print billing order: HTTP {response.status_code} - {response.text}"
-            logger.error(error_msg)
-            
-            raise Exception(error_msg)
-
-        logger.info(f"Billing order printed successfully for table {order.table}")
-        
-        return True
-        
-    except requests.RequestException as e:
-        error_msg = f"Network error while printing billing order for table {order.table}: {e}"
-        logger.error(error_msg)
-        
-        raise Exception(error_msg)
-
-def get_status(location: Locations):
-    """Get the status of the printer service"""
-    logger.info("Checking printer service status")
-    
-    printer_url = get_printer_url()
-
-    try:
-        response = requests.get(
-            f"{printer_url}/status", 
-            headers={"Authorization": f"Bearer PRINTER123cerveza@"},
-            timeout=10
-        )
-        
-        data = response.json()
-        status = data.get("printer_connected", False)
-        
-        logger.info(f"Printer service status: {'online' if status else 'offline'}")
-        
-        
-        return bool(status)
-        
-    except requests.RequestException as e:
-        error_msg = f"Error connecting to printer service: {e}"
-        logger.error(error_msg)
-
-        return False
-    except Exception as e:
-        error_msg = f"Unexpected error checking printer status: {e}"
-        logger.error(error_msg)
-        
-        return False
-

+ 12 - 13
toteat/toteat.py

@@ -47,11 +47,7 @@ USER_ID = os.getenv("TOTEAT_USER_ID", "")
 
 # Toteat recomienda usar siempre las URLs nuevas; el sistema redirige al
 # ambiente legacy si corresponde.
-BASE_URL = (
-    "https://apidev.toteat.com/mw/or/1.0"
-    if DEVELOPMENT
-    else "https://api.toteat.com/mw/or/1.0"
-)
+BASE_URL = "https://api.toteat.com/mw/or/1.0"
 
 REQUEST_TIMEOUT = 15
 
@@ -72,6 +68,11 @@ _table_to_order: Dict[int, str] = {}
 # Buffers de venta pendientes (sale_id sintético → estado interno).
 _pending_sales: Dict[str, Dict[str, Any]] = {}
 
+# Mapa inverso orderId real → estado de venta. Permite que `create_item` sea
+# llamado con el orderId real de Toteat (items 2+ en una misma orden) sin
+# perder el contexto de mesa y tabla necesario para el POST /orders.
+_order_to_state: Dict[str, Dict[str, Any]] = {}
+
 redis_client = redis.Redis(
     host=os.getenv("REDIS_HOST", "localhost"),
     port=int(os.getenv("REDIS_PORT", 6379)),
@@ -178,9 +179,8 @@ def _clear_table_order(table_number: int) -> None:
 # Para mantenerlos sin cambios, traducimos el shape de Toteat al de Fudo.
 #
 # Nota sobre kitchen_id: Toteat no expone "kitchen" como Fudo. Se mapea por
-# defecto al `categoryId` para que `print_service` siga ruteando items por
-# categoría. Si en el futuro hay que enviar items específicos a otra
-# impresora se puede agregar un mapping configurable.
+# defecto al `categoryId`. Si en el futuro se necesita enrutar items por
+# alguna dimensión distinta, agregar un mapping configurable aquí.
 
 def _to_fudo_product(toteat_item: Dict[str, Any]) -> Dict[str, Any]:
     images = toteat_item.get("images") or []
@@ -304,9 +304,7 @@ def get_category(id_category) -> Dict[str, Any]:
 
 
 def get_product(product_id) -> Optional[Product]:
-    print(f"producto recibido: {product_id}")
     pid = str(product_id)
-    print(f"pid: {pid}")
     for it in _fetch_menu():
         if str(it.get("id")) == pid:
             mapped = _to_fudo_product(it)
@@ -521,7 +519,7 @@ def create_sale(table_id) -> Optional[Dict[str, str]]:
     return {"id": sale_id, "type": "Sale"}
 
 
-def _build_line(product_id: int, quantity: int, comment: Optional[str]) -> Dict[str, Any]:
+def _build_line(product_id: str, quantity: int, comment: Optional[str]) -> Dict[str, Any]:
     line: Dict[str, Any] = {
         "productCode": str(product_id),
         "quantity": quantity,
@@ -554,13 +552,13 @@ def _post_order(table_id: str, lines: List[Dict[str, Any]], order_id: int = 0,
     return _post("/orders", body, params={"orderDetail": "true"})
 
 
-def create_item(product_id: int, quantity: int, sale_id: str,
+def create_item(product_id: str, quantity: int, sale_id: str,
                 comment: Optional[str] = None) -> Optional[Dict[str, Any]]:
     """Agrega un producto a una venta. Si la venta es pendiente (todavía no
     existe en Toteat) hace el POST /orders inicial; si ya existe le añade la
     línea. Devuelve un dict truthy con `id` para mantener compatibilidad con
     los callers de Fudo."""
-    state = _pending_sales.get(sale_id)
+    state = _pending_sales.get(sale_id) or _order_to_state.get(sale_id)
     if state is None:
         logger.error(f"create_item: sale_id desconocido {sale_id}")
         return None
@@ -591,6 +589,7 @@ def create_item(product_id: int, quantity: int, sale_id: str,
     if order_id_returned and not state["order_id"]:
         state["order_id"] = order_id_returned
         _persist_table_order(table_number, order_id_returned)
+        _order_to_state[order_id_returned] = state
 
     return {
         "id": state["order_id"] or order_id_returned or sale_id,

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio