diff --git a/runtime/history/SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1.json b/runtime/history/SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1.json new file mode 100644 index 00000000..98960d0a --- /dev/null +++ b/runtime/history/SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "change", + "component": "pvepro-core-templates-final", + "started_at_utc": "2026-09-19T21:41:43Z", + "finished_at_utc": "2026-09-19T21:42:20Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "ca0a003ae7f0b273655af19a97e0c2801286b246d5d0b445d5c32fd4251db97b", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": true, + "result_contract_valid": true, + "result_contract_status": "OK", + "result_contract_error": null, + "command_rc": 0, + "changes_made": true, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "MUTATED", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "d50eb57618e68599dd52d4e65bd81919fdd4922fab2beea0c04811eafafad6fe", + "sanitized_output_sha256": "d50eb57618e68599dd52d4e65bd81919fdd4922fab2beea0c04811eafafad6fe", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "CORE_TEMPLATES_PRESTATE_OK=true\nCORE_TEMPLATES_CHANGE_TRANSPORT_RC=0\nCORE_TEMPLATES_CHANGE_EXITCODE=0\nCORE_TEMPLATES_CHANGE_OUTPUT_BEGIN\nSTAGE=TEMPLATE_1\nTHREADPROC_RC=0\nTHREADPROC_FORUM_SHA256=5c73f9d4f59bf3a29421b1d4fce6ae91c9cd8b9ab76f21b8df1a11f1f904968e\nTHREADPROC_TITLE_SHA256=cb584462c399e4a78bdaad641610e48e2725c81a3afce87264267ddc465da76c\nTHREADPROC_THREAD_ID=1\nTHREADPROC_POST_ID=1\nTHREADPROC_AUTHOR_ID=1\nTHREADPROC_FORUM_ID=9\nTHREADPROC_MESSAGE_SHA256=191b9f294672f2cab32e8364c308e80c7f8aa46a648e37773b5cd5831f63e792\nSTAGE=TEMPLATE_2\nTHREADPROC_RC=0\nTHREADPROC_FORUM_SHA256=6bd71f919c80e0378aa0dda1d50f26cf3c7855b01dc2067f88400da806081ff3\nTHREADPROC_TITLE_SHA256=5bd43994e1de2fd19c29ce1ab85c56a8a9d98856f8ac5ffb4d932009d411b7b1\nTHREADPROC_THREAD_ID=2\nTHREADPROC_POST_ID=2\nTHREADPROC_AUTHOR_ID=1\nTHREADPROC_FORUM_ID=11\nTHREADPROC_MESSAGE_SHA256=599e966fbb46d738717961267e4e3c2f66c6395f0d394013cc48ca2687e665ec\nSTAGE=TEMPLATE_3\nTHREADPROC_RC=0\nTHREADPROC_FORUM_SHA256=9b27b27566a22e98a5e45f3f2491da8088b341875293f7614d8caa2d263679b4\nTHREADPROC_TITLE_SHA256=23b77f6e50178280abda24d9b47afd6bb597a1a99774ec76202d37adb2f6e75c\nTHREADPROC_THREAD_ID=3\nTHREADPROC_POST_ID=3\nTHREADPROC_AUTHOR_ID=1\nTHREADPROC_FORUM_ID=12\nTHREADPROC_MESSAGE_SHA256=6bdc469569b82c59cd79523d499b37edfc14d34353fa6302ccb3c6bd46c2b95b\nSTAGE=TEMPLATE_4\nTHREADPROC_RC=0\nTHREADPROC_FORUM_SHA256=37e868790a460ad844632d79141f073c5a1b83ee78ef0a0e764250fdec279304\nTHREADPROC_TITLE_SHA256=5db8c9e7cad1f69c3993052977458e76f47d09e880ae39aa0745a7bd5b6ef25f\nTHREADPROC_THREAD_ID=4\nTHREADPROC_POST_ID=4\nTHREADPROC_AUTHOR_ID=1\nTHREADPROC_FORUM_ID=13\nTHREADPROC_MESSAGE_SHA256=666a4f3ad6d3f97b4e61ea0ccdcc9a834c5f924ffe1fdf02c9b01d49e6e998ff\nSTAGE=TEMPLATE_5\nTHREADPROC_RC=0\nTHREADPROC_FORUM_SHA256=d90121745924a07f5d0c48f07698b2e9d2100b54324f69edfa7fc67485983762\nTHREADPROC_TITLE_SHA256=79dcefa41f03ba8e67efae62e181056d32195a78899931ef2ace639e2f6f0fba\nTHREADPROC_THREAD_ID=5\nTHREADPROC_POST_ID=5\nTHREADPROC_AUTHOR_ID=1\nTHREADPROC_FORUM_ID=14\nTHREADPROC_MESSAGE_SHA256=6671884720fb17171cc150c6211d5580e8a62843578e465418ce4e516d0acb83\nSTAGE=TEMPLATE_6\nTHREADPROC_RC=0\nTHREADPROC_FORUM_SHA256=e8ff716848b6ee42579bbd6fb1890a66f24d9c41b3a8eaa433b420a992d75a8a\nTHREADPROC_TITLE_SHA256=b19f68c358c75a7ec65216a00724968c9b241611cf6ed72b25d9c7f1c2ba83e7\nTHREADPROC_THREAD_ID=6\nTHREADPROC_POST_ID=6\nTHREADPROC_AUTHOR_ID=1\nTHREADPROC_FORUM_ID=15\nTHREADPROC_MESSAGE_SHA256=a6d2bfe6ff00410020265298455b045801bf6a4413ffc3bc6da05a3cdfe53d00\nSTAGE=TEMPLATE_7\nTHREADPROC_RC=0\nTHREADPROC_FORUM_SHA256=b1d06e7a6bcca44649a56c1d1d8b012a577a5404802d7e1821a2df7d4c597526\nTHREADPROC_TITLE_SHA256=324254e802da9cfefc93c59d2c001227d9f1e1228a5b4ef440611e42af828d8a\nTHREADPROC_THREAD_ID=7\nTHREADPROC_POST_ID=7\nTHREADPROC_AUTHOR_ID=1\nTHREADPROC_FORUM_ID=10\nTHREADPROC_MESSAGE_SHA256=e68b51653a45f342b42d20a6bbd5690eff408984a4ece5780bd8a042dfad5252\nSTAGE=TEMPLATE_8\nTHREADPROC_RC=0\nTHREADPROC_FORUM_SHA256=0be540e44c858e8d2ec7f18f1d01a991031319a201e785e24893f9b984f008f9\nTHREADPROC_TITLE_SHA256=83c458eac55f47cd6fc0746e6847f39af0049b32926df581e8fa1fb027532a0d\nTHREADPROC_THREAD_ID=8\nTHREADPROC_POST_ID=8\nTHREADPROC_AUTHOR_ID=1\nTHREADPROC_FORUM_ID=17\nTHREADPROC_MESSAGE_SHA256=d0007661a8f64295244d164b63dd006af97d54149c72f3d9e1414b87c519b788\nSTAGE=TEMPLATE_9\nTHREADPROC_RC=0\nTHREADPROC_FORUM_SHA256=b59e23fe3f6cffd0eebd12a55c547129bc4ff0f781158b8d847dbe43daadd23b\nTHREADPROC_TITLE_SHA256=1219b7bc110b40b848171bbd7813a1025275f733f79913732d95395e59d122bc\nTHREADPROC_THREAD_ID=9\nTHREADPROC_POST_ID=9\nTHREADPROC_AUTHOR_ID=1\nTHREADPROC_FORUM_ID=18\nTHREADPROC_MESSAGE_SHA256=f68c4920277e57f62b2d9ef2995690477603c2b73c39e4a2e2be368fed8a62c8\nTEMPLATES_CREATED=9\nAUTHOR_CONTEXT=XF_asVisitor_Admin\nCORE_TEMPLATES_CHANGE_OUTPUT_END\nPOSTCHECK_OUTPUT_BEGIN\nXF_SHA=d0c10d91d743e0a541d9a1b201080491dae0a8b1757866f113ef707b83403219\nNODE_COUNT=18\nFORUM_COUNT=12\nTHREAD_COUNT=9\nPOST_COUNT=9\nZERO_REPLY_THREAD_COUNT=9\nPHP_VERIFY_RC=0\nVERIFY_THREAD_ENTITIES=9\nVERIFY_FORUM_ASSOC=9\nVERIFY_AUTHOR_MATCH=9\nVERIFY_CONTENT_HASH=9\nREG_ENABLED=0\nTITLE=PVEPro\nDESC_SHA=3748f06ab8cd9f32c7d3541e7193c478a47bbe69e383dd842ea6a3c9a65c0f57\nNODELIST_COUNT=18\nTABLES=224\nADMINS=1\nSVC_QEMU_GUEST_AGENT=active\nSVC_NGINX=active\nSVC_PHP8_3_FPM=active\nSVC_MARIADB=active\nMARIADB_SOCKET_ENABLED=masked\nPOSTCHECK_OUTPUT_END\nCORE_TEMPLATES_POSTCHECK_OK=true\nTASK_COMPLETE=true\nTASK_RESULT=PASS_PVEPRO_CORE_TEMPLATES_FINAL\nTEMPLATE_THREAD_COUNT=9\nPUBLIC_CUTOVER=false\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}\n" +} diff --git a/runtime/history/SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1.txt b/runtime/history/SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1.txt new file mode 100644 index 00000000..f566f8f3 --- /dev/null +++ b/runtime/history/SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1.txt @@ -0,0 +1,150 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1 +STATUS=OK +RC=0 +HOST=pve01 +MODE=change +COMPONENT=pvepro-core-templates-final +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=ca0a003ae7f0b273655af19a97e0c2801286b246d5d0b445d5c32fd4251db97b +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=true +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=OK +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=true +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=MUTATED +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=d50eb57618e68599dd52d4e65bd81919fdd4922fab2beea0c04811eafafad6fe +SANITIZED_OUTPUT_SHA256=d50eb57618e68599dd52d4e65bd81919fdd4922fab2beea0c04811eafafad6fe +OUTPUT_BEGIN +CORE_TEMPLATES_PRESTATE_OK=true +CORE_TEMPLATES_CHANGE_TRANSPORT_RC=0 +CORE_TEMPLATES_CHANGE_EXITCODE=0 +CORE_TEMPLATES_CHANGE_OUTPUT_BEGIN +STAGE=TEMPLATE_1 +THREADPROC_RC=0 +THREADPROC_FORUM_SHA256=5c73f9d4f59bf3a29421b1d4fce6ae91c9cd8b9ab76f21b8df1a11f1f904968e +THREADPROC_TITLE_SHA256=cb584462c399e4a78bdaad641610e48e2725c81a3afce87264267ddc465da76c +THREADPROC_THREAD_ID=1 +THREADPROC_POST_ID=1 +THREADPROC_AUTHOR_ID=1 +THREADPROC_FORUM_ID=9 +THREADPROC_MESSAGE_SHA256=191b9f294672f2cab32e8364c308e80c7f8aa46a648e37773b5cd5831f63e792 +STAGE=TEMPLATE_2 +THREADPROC_RC=0 +THREADPROC_FORUM_SHA256=6bd71f919c80e0378aa0dda1d50f26cf3c7855b01dc2067f88400da806081ff3 +THREADPROC_TITLE_SHA256=5bd43994e1de2fd19c29ce1ab85c56a8a9d98856f8ac5ffb4d932009d411b7b1 +THREADPROC_THREAD_ID=2 +THREADPROC_POST_ID=2 +THREADPROC_AUTHOR_ID=1 +THREADPROC_FORUM_ID=11 +THREADPROC_MESSAGE_SHA256=599e966fbb46d738717961267e4e3c2f66c6395f0d394013cc48ca2687e665ec +STAGE=TEMPLATE_3 +THREADPROC_RC=0 +THREADPROC_FORUM_SHA256=9b27b27566a22e98a5e45f3f2491da8088b341875293f7614d8caa2d263679b4 +THREADPROC_TITLE_SHA256=23b77f6e50178280abda24d9b47afd6bb597a1a99774ec76202d37adb2f6e75c +THREADPROC_THREAD_ID=3 +THREADPROC_POST_ID=3 +THREADPROC_AUTHOR_ID=1 +THREADPROC_FORUM_ID=12 +THREADPROC_MESSAGE_SHA256=6bdc469569b82c59cd79523d499b37edfc14d34353fa6302ccb3c6bd46c2b95b +STAGE=TEMPLATE_4 +THREADPROC_RC=0 +THREADPROC_FORUM_SHA256=37e868790a460ad844632d79141f073c5a1b83ee78ef0a0e764250fdec279304 +THREADPROC_TITLE_SHA256=5db8c9e7cad1f69c3993052977458e76f47d09e880ae39aa0745a7bd5b6ef25f +THREADPROC_THREAD_ID=4 +THREADPROC_POST_ID=4 +THREADPROC_AUTHOR_ID=1 +THREADPROC_FORUM_ID=13 +THREADPROC_MESSAGE_SHA256=666a4f3ad6d3f97b4e61ea0ccdcc9a834c5f924ffe1fdf02c9b01d49e6e998ff +STAGE=TEMPLATE_5 +THREADPROC_RC=0 +THREADPROC_FORUM_SHA256=d90121745924a07f5d0c48f07698b2e9d2100b54324f69edfa7fc67485983762 +THREADPROC_TITLE_SHA256=79dcefa41f03ba8e67efae62e181056d32195a78899931ef2ace639e2f6f0fba +THREADPROC_THREAD_ID=5 +THREADPROC_POST_ID=5 +THREADPROC_AUTHOR_ID=1 +THREADPROC_FORUM_ID=14 +THREADPROC_MESSAGE_SHA256=6671884720fb17171cc150c6211d5580e8a62843578e465418ce4e516d0acb83 +STAGE=TEMPLATE_6 +THREADPROC_RC=0 +THREADPROC_FORUM_SHA256=e8ff716848b6ee42579bbd6fb1890a66f24d9c41b3a8eaa433b420a992d75a8a +THREADPROC_TITLE_SHA256=b19f68c358c75a7ec65216a00724968c9b241611cf6ed72b25d9c7f1c2ba83e7 +THREADPROC_THREAD_ID=6 +THREADPROC_POST_ID=6 +THREADPROC_AUTHOR_ID=1 +THREADPROC_FORUM_ID=15 +THREADPROC_MESSAGE_SHA256=a6d2bfe6ff00410020265298455b045801bf6a4413ffc3bc6da05a3cdfe53d00 +STAGE=TEMPLATE_7 +THREADPROC_RC=0 +THREADPROC_FORUM_SHA256=b1d06e7a6bcca44649a56c1d1d8b012a577a5404802d7e1821a2df7d4c597526 +THREADPROC_TITLE_SHA256=324254e802da9cfefc93c59d2c001227d9f1e1228a5b4ef440611e42af828d8a +THREADPROC_THREAD_ID=7 +THREADPROC_POST_ID=7 +THREADPROC_AUTHOR_ID=1 +THREADPROC_FORUM_ID=10 +THREADPROC_MESSAGE_SHA256=e68b51653a45f342b42d20a6bbd5690eff408984a4ece5780bd8a042dfad5252 +STAGE=TEMPLATE_8 +THREADPROC_RC=0 +THREADPROC_FORUM_SHA256=0be540e44c858e8d2ec7f18f1d01a991031319a201e785e24893f9b984f008f9 +THREADPROC_TITLE_SHA256=83c458eac55f47cd6fc0746e6847f39af0049b32926df581e8fa1fb027532a0d +THREADPROC_THREAD_ID=8 +THREADPROC_POST_ID=8 +THREADPROC_AUTHOR_ID=1 +THREADPROC_FORUM_ID=17 +THREADPROC_MESSAGE_SHA256=d0007661a8f64295244d164b63dd006af97d54149c72f3d9e1414b87c519b788 +STAGE=TEMPLATE_9 +THREADPROC_RC=0 +THREADPROC_FORUM_SHA256=b59e23fe3f6cffd0eebd12a55c547129bc4ff0f781158b8d847dbe43daadd23b +THREADPROC_TITLE_SHA256=1219b7bc110b40b848171bbd7813a1025275f733f79913732d95395e59d122bc +THREADPROC_THREAD_ID=9 +THREADPROC_POST_ID=9 +THREADPROC_AUTHOR_ID=1 +THREADPROC_FORUM_ID=18 +THREADPROC_MESSAGE_SHA256=f68c4920277e57f62b2d9ef2995690477603c2b73c39e4a2e2be368fed8a62c8 +TEMPLATES_CREATED=9 +AUTHOR_CONTEXT=XF_asVisitor_Admin +CORE_TEMPLATES_CHANGE_OUTPUT_END +POSTCHECK_OUTPUT_BEGIN +XF_SHA=d0c10d91d743e0a541d9a1b201080491dae0a8b1757866f113ef707b83403219 +NODE_COUNT=18 +FORUM_COUNT=12 +THREAD_COUNT=9 +POST_COUNT=9 +ZERO_REPLY_THREAD_COUNT=9 +PHP_VERIFY_RC=0 +VERIFY_THREAD_ENTITIES=9 +VERIFY_FORUM_ASSOC=9 +VERIFY_AUTHOR_MATCH=9 +VERIFY_CONTENT_HASH=9 +REG_ENABLED=0 +TITLE=PVEPro +DESC_SHA=3748f06ab8cd9f32c7d3541e7193c478a47bbe69e383dd842ea6a3c9a65c0f57 +NODELIST_COUNT=18 +TABLES=224 +ADMINS=1 +SVC_QEMU_GUEST_AGENT=active +SVC_NGINX=active +SVC_PHP8_3_FPM=active +SVC_MARIADB=active +MARIADB_SOCKET_ENABLED=masked +POSTCHECK_OUTPUT_END +CORE_TEMPLATES_POSTCHECK_OK=true +TASK_COMPLETE=true +TASK_RESULT=PASS_PVEPRO_CORE_TEMPLATES_FINAL +TEMPLATE_THREAD_COUNT=9 +PUBLIC_CUTOVER=false +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1","status":"OK","changes_made":true,"rollback_started":false,"rollback_restored":null} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 9a10fa73..98960d0a 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,38 +1,38 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "NEWFI-260919-NEWFDOM-NOTIFY213-CONTRACT171", + "command_id": "SUPPORT-260920-PVEPRO-CORE-TEMPLATES-FINAL-701R1", "status": "OK", "rc": 0, "host": "pve01", - "mode": "read-only", - "component": "newfi-newfdom-notify213-xenforo-alert-push-contract-readonly", - "started_at_utc": "2026-09-19T21:38:07Z", - "finished_at_utc": "2026-09-19T21:38:10Z", + "mode": "change", + "component": "pvepro-core-templates-final", + "started_at_utc": "2026-09-19T21:41:43Z", + "finished_at_utc": "2026-09-19T21:42:20Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "c263a21ba533a05176ca6a52559628095df424d4edac189fe188176f8333894e", + "command_sha256": "ca0a003ae7f0b273655af19a97e0c2801286b246d5d0b445d5c32fd4251db97b", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, - "change_declared": false, + "change_declared": true, "result_contract_valid": true, - "result_contract_status": null, + "result_contract_status": "OK", "result_contract_error": null, "command_rc": 0, - "changes_made": false, + "changes_made": true, "rollback_started": false, "rollback_restored": null, - "mutation_outcome": "NO_MUTATION", + "mutation_outcome": "MUTATED", "sanitized": true, "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "788c33605da51d3a968984b95b4cc5a8f394a11e22d6105b9cfa73dcfd7aebea", - "sanitized_output_sha256": "788c33605da51d3a968984b95b4cc5a8f394a11e22d6105b9cfa73dcfd7aebea", + "raw_evidence_sha256": "d50eb57618e68599dd52d4e65bd81919fdd4922fab2beea0c04811eafafad6fe", + "sanitized_output_sha256": "d50eb57618e68599dd52d4e65bd81919fdd4922fab2beea0c04811eafafad6fe", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "NEWFI171_BEGIN=true\nCOMMAND_ID=NEWFI-260919-NEWFDOM-NOTIFY213-CONTRACT171\nNEWFI171_GIT={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"head\":\"92de706841be89597b4b6d9738c64780e9f940e5\",\"remote_head\":\"92de706841be89597b4b6d9738c64780e9f940e5\"}\nNEWFI171_GIT_SOURCE={\"src/addons/Newfi/AutoContent/Entity/EditorialItem.php\":{\"bytes\":1677,\"sha256\":\"57ef31a09736773b1ce05394f741145b0290b1e58be5e25e2605802e4fa140ab\",\"text\":\"table='xf_newfi_autocontent_item';\\n $s->shortName='Newfi\\\\AutoContent:EditorialItem';\\n $s->primaryKey='item_id';\\n $s->columns=[\\n 'item_id'=>['type'=>self::UINT,'autoIncrement'=>true,'nullable'=>true],\\n 'source_id'=>['type'=>self::UINT,'required'=>true],\\n 'source_identity'=>['type'=>self::BINARY,'maxLength'=>190,'required'=>true],\\n 'fingerprint'=>['type'=>self::BINARY,'maxLength'=>64,'required'=>true],\\n 'event_id'=>['type'=>self::UINT,'default'=>0],\\n 'editorial_state'=>['type'=>self::BINARY,'maxLength'=>25,'default'=>'draft','allowedValues'=>['draft','review','published','rejected']],\\n 'title'=>['type'=>self::STR,'maxLength'=>100,'required'=>true],\\n 'starts_at'=>['type'=>self::UINT,'required'=>true],\\n 'ends_at'=>['type'=>self::UINT,'default'=>0],\\n 'region'=>['type'=>self::STR,'maxLength'=>100,'default'=>''],\\n 'location'=>['type'=>self::STR,'maxLength'=>255,'default'=>''],\\n 'description'=>['type'=>self::STR,'default'=>''],\\n 'source_url'=>['type'=>self::STR,'maxLength'=>500,'required'=>true],\\n 'cancelled'=>['type'=>self::BOOL,'default'=>false],\\n 'first_seen_at'=>['type'=>self::UINT,'required'=>true],\\n 'last_seen_at'=>['type'=>self::UINT,'required'=>true],\\n 'updated_at'=>['type'=>self::UINT,'required'=>true],\\n ];\\n return $s;\\n }\\n}\\n\"},\"src/addons/Newfi/AutoContent/Service/Monitor.php\":{\"bytes\":8213,\"sha256\":\"af8a30b1bb0dd53bd9e8283fb515ed2b336288354227080e4bc504b4c0751754\",\"text\":\"app->service(Collector::class)->isEnabled();}\\n private function lock(int $id): bool{return (int)$this->db()->fetchOne('SELECT GET_LOCK(?, 0)',Policy::monitorJobKey($id))===1;}\\n private function unlock(int $id): void{$this->db()->fetchOne('SELECT RELEASE_LOCK(?)',Policy::monitorJobKey($id));}\\n public function scheduleDue(): int\\n {\\n if(!$this->enabled())return 0;$queued=0;$now=time();\\n foreach($this->finder(MonitorState::class)->order('source_id')->fetch() as $m){$id=(int)$m->source_id;if((int)$m->next_attempt_at>$now)continue;$state=$this->em()->find(SourceState::class,$id);$source=$this->em()->find(SourceRegistry::class,$id);if(!$state||!$source||!$source->enabled)continue;try{$policy=Policy::source($source->toArray());}catch(\\\\InvalidArgumentException $e){continue;}if((string)$state->snapshot_url!==$policy['url']||(string)$state->body_sha256===''||(string)$m->last_snapshot_sha256===(string)$state->body_sha256)continue;\\n $jobs=$this->app->jobManager();$key=Policy::monitorJobKey($id);if($jobs->getUniqueJob($key))continue;if($jobs->enqueueUnique($key,MonitorSource::class,['source_id'=>$id],false)!==null)++$queued;\\n }return $queued;\\n }\\n public function runSource(int $id,float $budgetSeconds): string\\n {\\n $start=microtime(true);if(!$this->enabled())return 'disabled';if($budgetSeconds<3)return 'budget';if(!$this->lock($id))return 'busy';\\n try{$source=$this->em()->find(SourceRegistry::class,$id);$state=$this->em()->find(SourceState::class,$id);$monitor=$this->em()->find(MonitorState::class,$id);if(!$source||!$state||!$monitor)return 'disabled';$policy=Policy::source($source->toArray());if((string)$state->snapshot_url!==$policy['url']||(string)$state->body_sha256==='')return 'no_snapshot';if((string)$monitor->last_snapshot_sha256===(string)$state->body_sha256)return 'current';if($budgetSeconds-(microtime(true)-$start)<2)return 'budget';\\n try{$parsed=$this->parse((string)$source->parser_strategy,(string)$state->snapshot,$id);$records=MonitorPolicy::window($parsed['events']??[],time());$this->apply($source,$state,$monitor,$records,count($parsed['discoveries']??[]));return 'ok';}\\n catch(\\\\Throwable $e){$this->failed($monitor,$this->code($e),time());return 'retry';}\\n }finally{$this->unlock($id);}\\n }\\n private function parse(string $strategy,string $body,int $id): array\\n {\\n if($strategy==='html_fci_show_schedule_v1')return (new FciShowSchedule())->parse($body,$id);\\n if($strategy==='html_rkf_exhibition_activity_v1')return (new RkfExhibitionActivity())->parse($body);\\n throw new \\\\RuntimeException('MONITOR_PARSER');\\n }\\n private function apply(SourceRegistry $source,SourceState $state,MonitorState $monitor,array $records,int $discoveries): void\\n {\\n $now=time();$db=$this->db();$oldFailures=(int)$monitor->failures;$db->beginTransaction();\\n try{$existing=[];foreach($this->finder(Observation::class)->where('source_id',(int)$source->source_id)->fetch() as $o)$existing[]=$this->obsArray($o);\\n if(!$monitor->baseline_ready){foreach($records as $r)$this->createObservation((int)$source->source_id,$r,$now,(string)$state->body_sha256);$counts=['new'=>0,'changed'=>0,'cancelled'=>0];}\\n else{$plan=MonitorPolicy::plan($existing,$records,$now);$ingestor=$this->app->service(Ingestor::class);foreach($plan['unchanged'] as $r)$this->upsertObservation((int)$source->source_id,$r,$now,(string)$state->body_sha256);foreach($plan['changed'] as $r){$ingestor->ingest($r,$now);$this->upsertObservation((int)$source->source_id,$r,$now,(string)$state->body_sha256);}foreach($plan['new'] as $r){$ingestor->ingest($r,$now);$this->createObservation((int)$source->source_id,$r,$now,(string)$state->body_sha256);}foreach($plan['missing'] as $r)$this->upsertObservation((int)$source->source_id,$r,$now,(string)$state->body_sha256,false);foreach($plan['cancelled'] as $r){$ingestor->ingest($r,$now);$this->upsertObservation((int)$source->source_id,$r,$now,(string)$state->body_sha256,false);}$counts=['new'=>count($plan['new']),'changed'=>count($plan['changed']),'cancelled'=>count($plan['cancelled'])];}\\n $history=is_array($monitor->history)?$monitor->history:[];$history[]=['checked_at'=>$now,'snapshot_sha256'=>(string)$state->body_sha256,'observed'=>count($records),'discoveries'=>$discoveries,'new'=>$counts['new'],'changed'=>$counts['changed'],'cancelled'=>$counts['cancelled'],'status'=>'OK'];$monitor->bulkSet(['baseline_ready'=>true,'last_snapshot_sha256'=>(string)$state->body_sha256,'last_run_at'=>$now,'last_success_at'=>$now,'next_attempt_at'=>0,'failures'=>0,'last_error'=>'','observed_count'=>count($records),'new_count'=>$counts['new'],'changed_count'=>$counts['changed'],'cancelled_count'=>$counts['cancelled'],'history'=>array_slice($history,-32)]);$monitor->save();$db->commit();\\n }catch(\\\\Throwable $e){$db->rollback();throw $e;}\\n }\\n private function failed(MonitorState $m,string $code,int $now): void\\n {\\n $fail=min(1000000,(int)$m->failures+1);$history=is_array($m->history)?$m->history:[];$history[]=['checked_at'=>$now,'snapshot_sha256'=>(string)$m->last_snapshot_sha256,'observed'=>0,'discoveries'=>0,'new'=>0,'changed'=>0,'cancelled'=>0,'status'=>$code];$alert=in_array($fail,[1,3,6],true);$m->bulkSet(['last_run_at'=>$now,'last_failure_at'=>$now,'next_attempt_at'=>$now+MonitorPolicy::retryDelay($fail),'failures'=>$fail,'last_error'=>$code,'last_alert_at'=>$alert?$now:(int)$m->last_alert_at,'history'=>array_slice($history,-32)]);$m->save();if($alert)$this->alert((int)$m->source_id,$code,$fail);\\n }\\n private function alert(int $id,string $code,int $count): void{\\\\XF::logError('[Newfi EventBot] source='.$id.' code='.$code.' count='.$count);}\\n private function code(\\\\Throwable $e): string{$c=$e->getMessage();return in_array($c,['DOM_EXTENSION','FCI_HTML','RKF_HTML','MONITOR_RECORD_LIMIT','MONITOR_RECORD','MONITOR_PARSER','INGEST_REQUIRED','INGEST_ENDS_BEFORE_START','INGEST_LENGTH','INGEST_SOURCE_URL'],true)?$c:'MONITOR_ERROR';}\\n private function createObservation(int $sourceId,array $r,int $now,string $sha): Observation{$o=$this->em()->create(Observation::class);$o->bulkSet($this->obsData($sourceId,$r)+['first_seen_at'=>$now,'last_seen_at'=>$now,'evidence_sha256'=>$sha]);$o->save();return $o;}\\n private function upsertObservation(int $sourceId,array $r,int $now,string $sha,bool $seen=true): Observation{$o=$this->finder(Observation::class)->where('source_id',$sourceId)->where('source_identity',$r['source_identity'])->fetchOne();if(!$o)return $this->createObservation($sourceId,$r,$now,$sha);$o->bulkSet($this->obsData($sourceId,$r));if($seen)$o->last_seen_at=$now;$o->evidence_sha256=$sha;$o->save();return $o;}\\n private function obsData(int $sourceId,array $r): array{return ['source_id'=>$sourceId,'source_identity'=>$r['source_identity'],'match_key'=>$r['match_key'],'fingerprint'=>$r['fingerprint'],'title'=>$r['title'],'starts_at'=>$r['starts_at'],'ends_at'=>$r['ends_at']??0,'region'=>$r['region'],'location'=>$r['location'],'source_url'=>$r['source_url'],'cancelled'=>!empty($r['cancelled']),'missing_count'=>(int)($r['missing_count']??0)];}\\n private function obsArray(Observation $o): array{return ['source_id'=>(int)$o->source_id,'source_identity'=>(string)$o->source_identity,'match_key'=>(string)$o->match_key,'fingerprint'=>(string)$o->fingerprint,'title'=>(string)$o->title,'starts_at'=>(int)$o->starts_at,'ends_at'=>(int)$o->ends_at,'region'=>(string)$o->region,'location'=>(string)$o->location,'source_url'=>(string)$o->source_url,'cancelled'=>(bool)$o->cancelled,'missing_count'=>(int)$o->missing_count];}\\n}\\n\"},\"src/addons/Newfi/Events/Entity/Event.php\":{\"bytes\":1449,\"sha256\":\"8c2c6caf42390df552e64c7d95d225c394a27005ebcaaf7f8ebe2cb7f2e7bdf0\",\"text\":\"table = 'xf_newfi_event';\\n $structure->shortName = 'Newfi\\\\\\\\Events:Event';\\n $structure->primaryKey = 'event_id';\\n $structure->columns = [\\n 'event_id' => ['type' => self::UINT, 'autoIncrement' => true, 'nullable' => true],\\n 'title' => ['type' => self::STR, 'maxLength' => 100, 'required' => true],\\n 'starts_at' => ['type' => self::UINT, 'required' => true],\\n 'ends_at' => ['type' => self::UINT, 'default' => 0],\\n 'region' => ['type' => self::STR, 'maxLength' => 100, 'default' => ''],\\n 'location' => ['type' => self::STR, 'maxLength' => 255, 'default' => ''],\\n 'description' => ['type' => self::STR, 'maxLength' => 10000, 'default' => ''],\\n 'state' => [\\n 'type' => self::STR,\\n 'maxLength' => 25,\\n 'default' => 'draft',\\n 'allowedValues' => ['draft', 'published', 'cancelled']\\n ],\\n 'fingerprint' => ['type' => self::STR, 'maxLength' => 64, 'required' => true],\\n 'created_at' => ['type' => self::UINT, 'required' => true],\\n 'updated_at' => ['type' => self::UINT, 'required' => true]\\n ];\\n return $structure;\\n }\\n}\\n\"},\"src/addons/Newfi/Events/Entity/EventChange.php\":{\"bytes\":777,\"sha256\":\"c9743f22eedbd43a2a6231b34301d43d42fefbca9ce4898ee0d2a59eb455e602\",\"text\":\"table = 'xf_newfi_event_change';\\n $structure->shortName = 'Newfi\\\\Events:EventChange';\\n $structure->primaryKey = 'event_change_id';\\n $structure->columns = [\\n 'event_change_id' => ['type' => self::UINT, 'autoIncrement' => true, 'nullable' => true],\\n 'event_id' => ['type' => self::UINT, 'required' => true],\\n 'changed_at' => ['type' => self::UINT, 'required' => true],\\n 'change_note' => ['type' => self::STR, 'maxLength' => 1000, 'required' => true]\\n ];\\n return $structure;\\n }\\n}\\n\"},\"src/addons/Newfi/Events/Setup.php\":{\"bytes\":5005,\"sha256\":\"d644a93ec86ff75d9325564c9f0d9ecd36a8059cab4437df62e8be0c561efef0\",\"text\":\"schemaManager();\\n\\n $sm->createTable('xf_newfi_event', function (Create $table)\\n {\\n $table->addColumn('event_id', 'int')->autoIncrement();\\n $table->addColumn('title', 'varchar', 100);\\n $table->addColumn('starts_at', 'int');\\n $table->addColumn('ends_at', 'int')->setDefault(0);\\n $table->addColumn('region', 'varchar', 100)->setDefault('');\\n $table->addColumn('location', 'varchar', 255)->setDefault('');\\n $table->addColumn('description', 'text');\\n $table->addColumn('state', 'varbinary', 25)->setDefault('draft');\\n $table->addColumn('fingerprint', 'varbinary', 64);\\n $table->addColumn('created_at', 'int');\\n $table->addColumn('updated_at', 'int');\\n $table->addPrimaryKey('event_id');\\n $table->addKey('starts_at');\\n $table->addKey('state');\\n $table->addKey('fingerprint');\\n $table->addKey('region');\\n });\\n\\n $sm->createTable('xf_newfi_event_source', function (Create $table)\\n {\\n $table->addColumn('event_source_id', 'int')->autoIncrement();\\n $table->addColumn('event_id', 'int');\\n $table->addColumn('source_url', 'varchar', 500);\\n $table->addColumn('checked_at', 'int');\\n $table->addPrimaryKey('event_source_id');\\n $table->addKey('event_id');\\n });\\n\\n $sm->createTable('xf_newfi_event_change', function (Create $table)\\n {\\n $table->addColumn('event_change_id', 'int')->autoIncrement();\\n $table->addColumn('event_id', 'int');\\n $table->addColumn('changed_at', 'int');\\n $table->addColumn('change_note', 'text');\\n $table->addPrimaryKey('event_change_id');\\n $table->addKey('event_id');\\n });\\n\\n\\n $sm->createTable('xf_newfi_source_registry', function (Create $table)\\n {\\n $table->addColumn('source_id', 'int')->autoIncrement();\\n $table->addColumn('source_key', 'varbinary', 64);\\n $table->addColumn('title', 'varchar', 150);\\n $table->addColumn('base_url', 'varchar', 500);\\n $table->addColumn('source_type', 'varbinary', 50);\\n $table->addColumn('locale', 'varbinary', 20);\\n $table->addColumn('region', 'varbinary', 50);\\n $table->addColumn('parser_strategy', 'varbinary', 100);\\n $table->addColumn('poll_interval_seconds', 'int')->unsigned();\\n $table->addColumn('last_success_at', 'int')->unsigned()->setDefault(0);\\n $table->addColumn('last_failure_at', 'int')->unsigned()->setDefault(0);\\n $table->addColumn('failure_count', 'int')->unsigned()->setDefault(0);\\n $table->addColumn('last_error', 'varchar', 500)->setDefault('');\\n $table->addColumn('provenance_policy', 'varchar', 500);\\n $table->addColumn('enabled', 'tinyint')->unsigned()->setDefault(1);\\n $table->addColumn('created_at', 'int')->unsigned();\\n $table->addColumn('updated_at', 'int')->unsigned();\\n $table->addPrimaryKey('source_id');\\n $table->addUniqueKey('source_key');\\n $table->addKey('enabled');\\n $table->addKey('source_type');\\n $table->addKey('region');\\n });\\n\\n $seedPath = __DIR__ . '/public_sources.json';\\n $seedRows = json_decode((string)file_get_contents($seedPath), true, 512, JSON_THROW_ON_ERROR);\\n $now = time();\\n foreach ($seedRows as $row)\\n {\\n $db = \\\\XF::db();\\n $db->insert('xf_newfi_source_registry', [\\n 'source_key' => $row['source_key'],\\n 'title' => $row['title'],\\n 'base_url' => $row['base_url'],\\n 'source_type' => $row['source_type'],\\n 'locale' => $row['locale'],\\n 'region' => $row['region'],\\n 'parser_strategy' => $row['parser_strategy'],\\n 'poll_interval_seconds' => (int)$row['poll_interval_seconds'],\\n 'last_success_at' => 0,\\n 'last_failure_at' => 0,\\n 'failure_count' => 0,\\n 'last_error' => '',\\n 'provenance_policy' => $row['provenance_policy'],\\n 'enabled' => !empty($row['enabled']) ? 1 : 0,\\n 'created_at' => $now,\\n 'updated_at' => $now\\n ]);\\n }\\n\\n return null;\\n }\\n\\n public function uninstall(array $stepParams = [])\\n {\\n $sm = $this->schemaManager();\\n $sm->dropTable('xf_newfi_source_registry');\\n $sm->dropTable('xf_newfi_event_change');\\n $sm->dropTable('xf_newfi_event_source');\\n $sm->dropTable('xf_newfi_event');\\n return null;\\n }\\n}\\n\"},\"src/addons/Newfi/Events/_data/routes.xml\":{\"bytes\":144,\"sha256\":\"7fefbb03c4c8b0bcd3e1dc1cd8f3f0e44460aa3b1fc09f5e63ee394e56c61309\",\"text\":\"\\n\\n \\n\\n\"},\"src/addons/Newfi/Events/_data/templates.xml\":{\"bytes\":12199,\"sha256\":\"7d14721613e241c5e6718c92fe035a8208364a926417a6b75264e98cf5413b4b\",\"text\":\"\\n\\n \\n \\n \\n\\n\"},\"src/addons/Newfi/Events/addon.json\":{\"bytes\":397,\"sha256\":\"cc60d5f949db176004f603e42cfb160aefd7ed4d8d7fff30101f4ebb2c502dc3\",\"text\":\"{\\n \\\"title\\\": \\\"Newfi Events\\\",\\n \\\"description\\\": \\\"Minimal private-staging events/calendar component for the Newfi closed MVP.\\\",\\n \\\"version_id\\\": 1000010,\\n \\\"version_string\\\": \\\"1.0.0 Alpha 1\\\",\\n \\\"dev\\\": \\\"Newfi\\\",\\n \\\"dev_url\\\": \\\"\\\",\\n \\\"faq_url\\\": \\\"\\\",\\n \\\"support_url\\\": \\\"\\\",\\n \\\"extra_urls\\\": [],\\n \\\"require\\\": {\\n \\\"XF\\\": [\\n 2031270,\\n \\\"XenForo 2.3.12+\\\"\\n ]\\n },\\n \\\"icon\\\": \\\"\\\",\\n \\\"legacy_addon_id\\\": \\\"\\\"\\n}\\n\"}}\nNEWFI171_FRAMEWORK={\"addon_samples\":{\"addons/XFRM/Alert/ResourceItem.php\":{\"bytes\":280,\"matches\":[{\"context\":[{\"line\":2,\"text\":\"\"},{\"line\":3,\"text\":\"namespace XFRM\\\\Alert;\"},{\"line\":4,\"text\":\"\"},{\"line\":5,\"text\":\"use XF\\\\Alert\\\\AbstractHandler;\"},{\"line\":6,\"text\":\"\"}],\"line\":3,\"text\":\"namespace XFRM\\\\Alert;\"},{\"context\":[{\"line\":4,\"text\":\"\"},{\"line\":5,\"text\":\"use XF\\\\Alert\\\\AbstractHandler;\"},{\"line\":6,\"text\":\"\"},{\"line\":7,\"text\":\"class ResourceItem extends AbstractHandler\"},{\"line\":8,\"text\":\"{\"}],\"line\":5,\"text\":\"use XF\\\\Alert\\\\AbstractHandler;\"},{\"context\":[{\"line\":8,\"text\":\"{\"},{\"line\":9,\"text\":\"\\tpublic function getEntityWith(): array\"},{\"line\":10,\"text\":\"\\t{\"},{\"line\":11,\"text\":\"\\t\\t$visitor = \\\\XF::visitor();\"},{\"line\":12,\"text\":\"\"}],\"line\":9,\"text\":\"\\tpublic function getEntityWith(): array\"}],\"path\":\"/var/www/forums/newfi/public/src/addons/XFRM/Alert/ResourceItem.php\",\"present\":true,\"sha256\":\"6c57bdaba8e5fa2a943222faf41c1f7acf9ffedc36427018707944226d7225a3\"},\"addons/XFRM/Repository/ResourceWatch.php\":{\"bytes\":2771,\"matches\":[{\"context\":[{\"line\":11,\"text\":\"{\"},{\"line\":12,\"text\":\"\\tpublic function autoWatchResource(ResourceItem $resource, User $user, $onCreation = false)\"},{\"line\":13,\"text\":\"\\t{\"},{\"line\":14,\"text\":\"\\t\\t$userField = $onCreation ? 'creation_watch_state' : 'interaction_watch_state';\"},{\"line\":15,\"text\":\"\"}],\"line\":12,\"text\":\"\\tpublic function autoWatchResource(ResourceItem $resource, User $user, $onCreation = false)\"},{\"context\":[{\"line\":46,\"text\":\"\"},{\"line\":47,\"text\":\"\\tpublic function setWatchState(ResourceItem $resource, User $user, $action, array $config = [])\"},{\"line\":48,\"text\":\"\\t{\"},{\"line\":49,\"text\":\"\\t\\tif (!$resource->resource_id || !$user->user_id)\"},{\"line\":50,\"text\":\"\\t\\t{\"}],\"line\":47,\"text\":\"\\tpublic function setWatchState(ResourceItem $resource, User $user, $action, array $config = [])\"},{\"context\":[{\"line\":95,\"text\":\"\"},{\"line\":96,\"text\":\"\\tpublic function setWatchStateForAll(User $user, $action, array $updates = [])\"},{\"line\":97,\"text\":\"\\t{\"},{\"line\":98,\"text\":\"\\t\\tif (!$user->user_id)\"},{\"line\":99,\"text\":\"\\t\\t{\"}],\"line\":96,\"text\":\"\\tpublic function setWatchStateForAll(User $user, $action, array $updates = [])\"},{\"context\":[{\"line\":118,\"text\":\"\"},{\"line\":119,\"text\":\"\\tpublic function isValidWatchState($state)\"},{\"line\":120,\"text\":\"\\t{\"},{\"line\":121,\"text\":\"\\t\\tswitch ($state)\"},{\"line\":122,\"text\":\"\\t\\t{\"}],\"line\":119,\"text\":\"\\tpublic function isValidWatchState($state)\"}],\"path\":\"/var/www/forums/newfi/public/src/addons/XFRM/Repository/ResourceWatch.php\",\"present\":true,\"sha256\":\"dd9e4aabfe7a62402cec3b02df18dbecf1c21e12021930b27f176e04c75dcd76\"},\"addons/XFRM/_data/content_type_fields.xml\":{\"bytes\":6442,\"matches\":[{\"context\":[{\"line\":1,\"text\":\"\"},{\"line\":2,\"text\":\"\"},{\"line\":3,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceItemHandler\"},{\"line\":4,\"text\":\" XFRM\\\\Alert\\\\ResourceItem\"},{\"line\":5,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceItem\"}],\"line\":2,\"text\":\"\"},{\"context\":[{\"line\":2,\"text\":\"\"},{\"line\":3,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceItemHandler\"},{\"line\":4,\"text\":\" XFRM\\\\Alert\\\\ResourceItem\"},{\"line\":5,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceItem\"},{\"line\":6,\"text\":\" XFRM\\\\Bookmark\\\\ResourceItem\"}],\"line\":3,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceItemHandler\"},{\"context\":[{\"line\":3,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceItemHandler\"},{\"line\":4,\"text\":\" XFRM\\\\Alert\\\\ResourceItem\"},{\"line\":5,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceItem\"},{\"line\":6,\"text\":\" XFRM\\\\Bookmark\\\\ResourceItem\"},{\"line\":7,\"text\":\" XFRM\\\\EmailStop\\\\ResourceItem\"}],\"line\":4,\"text\":\" XFRM\\\\Alert\\\\ResourceItem\"},{\"context\":[{\"line\":4,\"text\":\" XFRM\\\\Alert\\\\ResourceItem\"},{\"line\":5,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceItem\"},{\"line\":6,\"text\":\" XFRM\\\\Bookmark\\\\ResourceItem\"},{\"line\":7,\"text\":\" XFRM\\\\EmailStop\\\\ResourceItem\"},{\"line\":8,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceItem\"}],\"line\":5,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceItem\"},{\"context\":[{\"line\":5,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceItem\"},{\"line\":6,\"text\":\" XFRM\\\\Bookmark\\\\ResourceItem\"},{\"line\":7,\"text\":\" XFRM\\\\EmailStop\\\\ResourceItem\"},{\"line\":8,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceItem\"},{\"line\":9,\"text\":\" XFRM:ResourceItem\"}],\"line\":6,\"text\":\" XFRM\\\\Bookmark\\\\ResourceItem\"},{\"context\":[{\"line\":6,\"text\":\" XFRM\\\\Bookmark\\\\ResourceItem\"},{\"line\":7,\"text\":\" XFRM\\\\EmailStop\\\\ResourceItem\"},{\"line\":8,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceItem\"},{\"line\":9,\"text\":\" XFRM:ResourceItem\"},{\"line\":10,\"text\":\" XFRM\\\\FeaturedContent\\\\ResourceItem\"}],\"line\":7,\"text\":\" XFRM\\\\EmailStop\\\\ResourceItem\"},{\"context\":[{\"line\":7,\"text\":\" XFRM\\\\EmailStop\\\\ResourceItem\"},{\"line\":8,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceItem\"},{\"line\":9,\"text\":\" XFRM:ResourceItem\"},{\"line\":10,\"text\":\" XFRM\\\\FeaturedContent\\\\ResourceItem\"},{\"line\":11,\"text\":\" XFRM\\\\FindNew\\\\ResourceItem\"}],\"line\":8,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceItem\"},{\"context\":[{\"line\":8,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceItem\"},{\"line\":9,\"text\":\" XFRM:ResourceItem\"},{\"line\":10,\"text\":\" XFRM\\\\FeaturedContent\\\\ResourceItem\"},{\"line\":11,\"text\":\" XFRM\\\\FindNew\\\\ResourceItem\"},{\"line\":12,\"text\":\" XFRM\\\\InlineMod\\\\ResourceItem\"}],\"line\":9,\"text\":\" XFRM:ResourceItem\"},{\"context\":[{\"line\":9,\"text\":\" XFRM:ResourceItem\"},{\"line\":10,\"text\":\" XFRM\\\\FeaturedContent\\\\ResourceItem\"},{\"line\":11,\"text\":\" XFRM\\\\FindNew\\\\ResourceItem\"},{\"line\":12,\"text\":\" XFRM\\\\InlineMod\\\\ResourceItem\"},{\"line\":13,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceItem\"}],\"line\":10,\"text\":\" XFRM\\\\FeaturedContent\\\\ResourceItem\"},{\"context\":[{\"line\":10,\"text\":\" XFRM\\\\FeaturedContent\\\\ResourceItem\"},{\"line\":11,\"text\":\" XFRM\\\\FindNew\\\\ResourceItem\"},{\"line\":12,\"text\":\" XFRM\\\\InlineMod\\\\ResourceItem\"},{\"line\":13,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceItem\"},{\"line\":14,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceItem\"}],\"line\":11,\"text\":\" XFRM\\\\FindNew\\\\ResourceItem\"},{\"context\":[{\"line\":11,\"text\":\" XFRM\\\\FindNew\\\\ResourceItem\"},{\"line\":12,\"text\":\" XFRM\\\\InlineMod\\\\ResourceItem\"},{\"line\":13,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceItem\"},{\"line\":14,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceItem\"},{\"line\":15,\"text\":\" xfrm_resource\"}],\"line\":12,\"text\":\" XFRM\\\\InlineMod\\\\ResourceItem\"},{\"context\":[{\"line\":12,\"text\":\" XFRM\\\\InlineMod\\\\ResourceItem\"},{\"line\":13,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceItem\"},{\"line\":14,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceItem\"},{\"line\":15,\"text\":\" xfrm_resource\"},{\"line\":16,\"text\":\" xfrm_resources\"}],\"line\":13,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceItem\"},{\"context\":[{\"line\":13,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceItem\"},{\"line\":14,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceItem\"},{\"line\":15,\"text\":\" xfrm_resource\"},{\"line\":16,\"text\":\" xfrm_resources\"},{\"line\":17,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceItem\"}],\"line\":14,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceItem\"},{\"context\":[{\"line\":14,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceItem\"},{\"line\":15,\"text\":\" xfrm_resource\"},{\"line\":16,\"text\":\" xfrm_resources\"},{\"line\":17,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceItem\"},{\"line\":18,\"text\":\" XFRM\\\\Sitemap\\\\ResourceItem\"}],\"line\":15,\"text\":\" xfrm_resource\"},{\"context\":[{\"line\":15,\"text\":\" xfrm_resource\"},{\"line\":16,\"text\":\" xfrm_resources\"},{\"line\":17,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceItem\"},{\"line\":18,\"text\":\" XFRM\\\\Sitemap\\\\ResourceItem\"},{\"line\":19,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceItem\"}],\"line\":16,\"text\":\" xfrm_resources\"},{\"context\":[{\"line\":16,\"text\":\" xfrm_resources\"},{\"line\":17,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceItem\"},{\"line\":18,\"text\":\" XFRM\\\\Sitemap\\\\ResourceItem\"},{\"line\":19,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceItem\"},{\"line\":20,\"text\":\" XFRM\\\\Stats\\\\ResourceItem\"}],\"line\":17,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceItem\"},{\"context\":[{\"line\":17,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceItem\"},{\"line\":18,\"text\":\" XFRM\\\\Sitemap\\\\ResourceItem\"},{\"line\":19,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceItem\"},{\"line\":20,\"text\":\" XFRM\\\\Stats\\\\ResourceItem\"},{\"line\":21,\"text\":\" XFRM\\\\Tag\\\\ResourceItem\"}],\"line\":18,\"text\":\" XFRM\\\\Sitemap\\\\ResourceItem\"},{\"context\":[{\"line\":18,\"text\":\" XFRM\\\\Sitemap\\\\ResourceItem\"},{\"line\":19,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceItem\"},{\"line\":20,\"text\":\" XFRM\\\\Stats\\\\ResourceItem\"},{\"line\":21,\"text\":\" XFRM\\\\Tag\\\\ResourceItem\"},{\"line\":22,\"text\":\" XFRM\\\\TrendingContent\\\\ResourceItemHandler\"}],\"line\":19,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceItem\"},{\"context\":[{\"line\":19,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceItem\"},{\"line\":20,\"text\":\" XFRM\\\\Stats\\\\ResourceItem\"},{\"line\":21,\"text\":\" XFRM\\\\Tag\\\\ResourceItem\"},{\"line\":22,\"text\":\" XFRM\\\\TrendingContent\\\\ResourceItemHandler\"},{\"line\":23,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceItem\"}],\"line\":20,\"text\":\" XFRM\\\\Stats\\\\ResourceItem\"},{\"context\":[{\"line\":20,\"text\":\" XFRM\\\\Stats\\\\ResourceItem\"},{\"line\":21,\"text\":\" XFRM\\\\Tag\\\\ResourceItem\"},{\"line\":22,\"text\":\" XFRM\\\\TrendingContent\\\\ResourceItemHandler\"},{\"line\":23,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceItem\"},{\"line\":24,\"text\":\" XFRM\\\\EmailStop\\\\Category\"}],\"line\":21,\"text\":\" XFRM\\\\Tag\\\\ResourceItem\"},{\"context\":[{\"line\":21,\"text\":\" XFRM\\\\Tag\\\\ResourceItem\"},{\"line\":22,\"text\":\" XFRM\\\\TrendingContent\\\\ResourceItemHandler\"},{\"line\":23,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceItem\"},{\"line\":24,\"text\":\" XFRM\\\\EmailStop\\\\Category\"},{\"line\":25,\"text\":\" XFRM\\\\Permission\\\\CategoryPermissions\"}],\"line\":22,\"text\":\" XFRM\\\\TrendingContent\\\\ResourceItemHandler\"},{\"context\":[{\"line\":22,\"text\":\" XFRM\\\\TrendingContent\\\\ResourceItemHandler\"},{\"line\":23,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceItem\"},{\"line\":24,\"text\":\" XFRM\\\\EmailStop\\\\Category\"},{\"line\":25,\"text\":\" XFRM\\\\Permission\\\\CategoryPermissions\"},{\"line\":26,\"text\":\" xfrm_resource_category\"}],\"line\":23,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceItem\"},{\"context\":[{\"line\":23,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceItem\"},{\"line\":24,\"text\":\" XFRM\\\\EmailStop\\\\Category\"},{\"line\":25,\"text\":\" XFRM\\\\Permission\\\\CategoryPermissions\"},{\"line\":26,\"text\":\" xfrm_resource_category\"},{\"line\":27,\"text\":\" xfrm_resource_categories\"}],\"line\":24,\"text\":\" XFRM\\\\EmailStop\\\\Category\"},{\"context\":[{\"line\":24,\"text\":\" XFRM\\\\EmailStop\\\\Category\"},{\"line\":25,\"text\":\" XFRM\\\\Permission\\\\CategoryPermissions\"},{\"line\":26,\"text\":\" xfrm_resource_category\"},{\"line\":27,\"text\":\" xfrm_resource_categories\"},{\"line\":28,\"text\":\" XFRM\\\\Alert\\\\ResourceRating\"}],\"line\":25,\"text\":\" XFRM\\\\Permission\\\\CategoryPermissions\"},{\"context\":[{\"line\":25,\"text\":\" XFRM\\\\Permission\\\\CategoryPermissions\"},{\"line\":26,\"text\":\" xfrm_resource_category\"},{\"line\":27,\"text\":\" xfrm_resource_categories\"},{\"line\":28,\"text\":\" XFRM\\\\Alert\\\\ResourceRating\"},{\"line\":29,\"text\":\" XFRM\\\\ContentVote\\\\ResourceRating\"}],\"line\":26,\"text\":\" xfrm_resource_category\"},{\"context\":[{\"line\":26,\"text\":\" xfrm_resource_category\"},{\"line\":27,\"text\":\" xfrm_resource_categories\"},{\"line\":28,\"text\":\" XFRM\\\\Alert\\\\ResourceRating\"},{\"line\":29,\"text\":\" XFRM\\\\ContentVote\\\\ResourceRating\"},{\"line\":30,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceRating\"}],\"line\":27,\"text\":\" xfrm_resource_categories\"},{\"context\":[{\"line\":27,\"text\":\" xfrm_resource_categories\"},{\"line\":28,\"text\":\" XFRM\\\\Alert\\\\ResourceRating\"},{\"line\":29,\"text\":\" XFRM\\\\ContentVote\\\\ResourceRating\"},{\"line\":30,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceRating\"},{\"line\":31,\"text\":\" XFRM:ResourceRating\"}],\"line\":28,\"text\":\" XFRM\\\\Alert\\\\ResourceRating\"},{\"context\":[{\"line\":28,\"text\":\" XFRM\\\\Alert\\\\ResourceRating\"},{\"line\":29,\"text\":\" XFRM\\\\ContentVote\\\\ResourceRating\"},{\"line\":30,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceRating\"},{\"line\":31,\"text\":\" XFRM:ResourceRating\"},{\"line\":32,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceRating\"}],\"line\":29,\"text\":\" XFRM\\\\ContentVote\\\\ResourceRating\"},{\"context\":[{\"line\":29,\"text\":\" XFRM\\\\ContentVote\\\\ResourceRating\"},{\"line\":30,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceRating\"},{\"line\":31,\"text\":\" XFRM:ResourceRating\"},{\"line\":32,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceRating\"},{\"line\":33,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceRating\"}],\"line\":30,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceRating\"},{\"context\":[{\"line\":30,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceRating\"},{\"line\":31,\"text\":\" XFRM:ResourceRating\"},{\"line\":32,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceRating\"},{\"line\":33,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceRating\"},{\"line\":34,\"text\":\" xfrm_resource_rating\"}],\"line\":31,\"text\":\" XFRM:ResourceRating\"},{\"context\":[{\"line\":31,\"text\":\" XFRM:ResourceRating\"},{\"line\":32,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceRating\"},{\"line\":33,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceRating\"},{\"line\":34,\"text\":\" xfrm_resource_rating\"},{\"line\":35,\"text\":\" XFRM\\\\Report\\\\ResourceRating\"}],\"line\":32,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceRating\"},{\"context\":[{\"line\":32,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceRating\"},{\"line\":33,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceRating\"},{\"line\":34,\"text\":\" xfrm_resource_rating\"},{\"line\":35,\"text\":\" XFRM\\\\Report\\\\ResourceRating\"},{\"line\":36,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceRating\"}],\"line\":33,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceRating\"},{\"context\":[{\"line\":33,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceRating\"},{\"line\":34,\"text\":\" xfrm_resource_rating\"},{\"line\":35,\"text\":\" XFRM\\\\Report\\\\ResourceRating\"},{\"line\":36,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceRating\"},{\"line\":37,\"text\":\" XFRM\\\\Warning\\\\ResourceRating\"}],\"line\":34,\"text\":\" xfrm_resource_rating\"},{\"context\":[{\"line\":34,\"text\":\" xfrm_resource_rating\"},{\"line\":35,\"text\":\" XFRM\\\\Report\\\\ResourceRating\"},{\"line\":36,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceRating\"},{\"line\":37,\"text\":\" XFRM\\\\Warning\\\\ResourceRating\"},{\"line\":38,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceRating\"}],\"line\":35,\"text\":\" XFRM\\\\Report\\\\ResourceRating\"},{\"context\":[{\"line\":35,\"text\":\" XFRM\\\\Report\\\\ResourceRating\"},{\"line\":36,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceRating\"},{\"line\":37,\"text\":\" XFRM\\\\Warning\\\\ResourceRating\"},{\"line\":38,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceRating\"},{\"line\":39,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceUpdateHandler\"}],\"line\":36,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceRating\"},{\"context\":[{\"line\":36,\"text\":\" XFRM\\\\Spam\\\\Cleaner\\\\ResourceRating\"},{\"line\":37,\"text\":\" XFRM\\\\Warning\\\\ResourceRating\"},{\"line\":38,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceRating\"},{\"line\":39,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceUpdateHandler\"},{\"line\":40,\"text\":\" XFRM\\\\Alert\\\\ResourceUpdate\"}],\"line\":37,\"text\":\" XFRM\\\\Warning\\\\ResourceRating\"},{\"context\":[{\"line\":37,\"text\":\" XFRM\\\\Warning\\\\ResourceRating\"},{\"line\":38,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceRating\"},{\"line\":39,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceUpdateHandler\"},{\"line\":40,\"text\":\" XFRM\\\\Alert\\\\ResourceUpdate\"},{\"line\":41,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceUpdate\"}],\"line\":38,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceRating\"},{\"context\":[{\"line\":38,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceRating\"},{\"line\":39,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceUpdateHandler\"},{\"line\":40,\"text\":\" XFRM\\\\Alert\\\\ResourceUpdate\"},{\"line\":41,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceUpdate\"},{\"line\":42,\"text\":\" XFRM\\\\Attachment\\\\ResourceUpdate\"}],\"line\":39,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceUpdateHandler\"},{\"context\":[{\"line\":39,\"text\":\" XFRM\\\\ActivityLog\\\\ResourceUpdateHandler\"},{\"line\":40,\"text\":\" XFRM\\\\Alert\\\\ResourceUpdate\"},{\"line\":41,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceUpdate\"},{\"line\":42,\"text\":\" XFRM\\\\Attachment\\\\ResourceUpdate\"},{\"line\":43,\"text\":\" XFRM\\\\Bookmark\\\\ResourceUpdate\"}],\"line\":40,\"text\":\" XFRM\\\\Alert\\\\ResourceUpdate\"},{\"context\":[{\"line\":40,\"text\":\" XFRM\\\\Alert\\\\ResourceUpdate\"},{\"line\":41,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceUpdate\"},{\"line\":42,\"text\":\" XFRM\\\\Attachment\\\\ResourceUpdate\"},{\"line\":43,\"text\":\" XFRM\\\\Bookmark\\\\ResourceUpdate\"},{\"line\":44,\"text\":\" XFRM\\\\EditHistory\\\\ResourceUpdate\"}],\"line\":41,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceUpdate\"},{\"context\":[{\"line\":41,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceUpdate\"},{\"line\":42,\"text\":\" XFRM\\\\Attachment\\\\ResourceUpdate\"},{\"line\":43,\"text\":\" XFRM\\\\Bookmark\\\\ResourceUpdate\"},{\"line\":44,\"text\":\" XFRM\\\\EditHistory\\\\ResourceUpdate\"},{\"line\":45,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceUpdate\"}],\"line\":42,\"text\":\" XFRM\\\\Attachment\\\\ResourceUpdate\"},{\"context\":[{\"line\":42,\"text\":\" XFRM\\\\Attachment\\\\ResourceUpdate\"},{\"line\":43,\"text\":\" XFRM\\\\Bookmark\\\\ResourceUpdate\"},{\"line\":44,\"text\":\" XFRM\\\\EditHistory\\\\ResourceUpdate\"},{\"line\":45,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceUpdate\"},{\"line\":46,\"text\":\" XFRM:ResourceUpdate\"}],\"line\":43,\"text\":\" XFRM\\\\Bookmark\\\\ResourceUpdate\"},{\"context\":[{\"line\":43,\"text\":\" XFRM\\\\Bookmark\\\\ResourceUpdate\"},{\"line\":44,\"text\":\" XFRM\\\\EditHistory\\\\ResourceUpdate\"},{\"line\":45,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceUpdate\"},{\"line\":46,\"text\":\" XFRM:ResourceUpdate\"},{\"line\":47,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceUpdate\"}],\"line\":44,\"text\":\" XFRM\\\\EditHistory\\\\ResourceUpdate\"},{\"context\":[{\"line\":44,\"text\":\" XFRM\\\\EditHistory\\\\ResourceUpdate\"},{\"line\":45,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceUpdate\"},{\"line\":46,\"text\":\" XFRM:ResourceUpdate\"},{\"line\":47,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceUpdate\"},{\"line\":48,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceUpdate\"}],\"line\":45,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceUpdate\"},{\"context\":[{\"line\":45,\"text\":\" XFRM\\\\EmbedResolver\\\\ResourceUpdate\"},{\"line\":46,\"text\":\" XFRM:ResourceUpdate\"},{\"line\":47,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceUpdate\"},{\"line\":48,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceUpdate\"},{\"line\":49,\"text\":\" xfrm_resource_update\"}],\"line\":46,\"text\":\" XFRM:ResourceUpdate\"},{\"context\":[{\"line\":46,\"text\":\" XFRM:ResourceUpdate\"},{\"line\":47,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceUpdate\"},{\"line\":48,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceUpdate\"},{\"line\":49,\"text\":\" xfrm_resource_update\"},{\"line\":50,\"text\":\" xfrm_resource_updates\"}],\"line\":47,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceUpdate\"},{\"context\":[{\"line\":47,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceUpdate\"},{\"line\":48,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceUpdate\"},{\"line\":49,\"text\":\" xfrm_resource_update\"},{\"line\":50,\"text\":\" xfrm_resource_updates\"},{\"line\":51,\"text\":\" XFRM\\\\Reaction\\\\ResourceUpdate\"}],\"line\":48,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceUpdate\"},{\"context\":[{\"line\":48,\"text\":\" XFRM\\\\NewsFeed\\\\ResourceUpdate\"},{\"line\":49,\"text\":\" xfrm_resource_update\"},{\"line\":50,\"text\":\" xfrm_resource_updates\"},{\"line\":51,\"text\":\" XFRM\\\\Reaction\\\\ResourceUpdate\"},{\"line\":52,\"text\":\" XFRM\\\\Report\\\\ResourceUpdate\"}],\"line\":49,\"text\":\" xfrm_resource_update\"},{\"context\":[{\"line\":49,\"text\":\" xfrm_resource_update\"},{\"line\":50,\"text\":\" xfrm_resource_updates\"},{\"line\":51,\"text\":\" XFRM\\\\Reaction\\\\ResourceUpdate\"},{\"line\":52,\"text\":\" XFRM\\\\Report\\\\ResourceUpdate\"},{\"line\":53,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceUpdate\"}],\"line\":50,\"text\":\" xfrm_resource_updates\"},{\"context\":[{\"line\":50,\"text\":\" xfrm_resource_updates\"},{\"line\":51,\"text\":\" XFRM\\\\Reaction\\\\ResourceUpdate\"},{\"line\":52,\"text\":\" XFRM\\\\Report\\\\ResourceUpdate\"},{\"line\":53,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceUpdate\"},{\"line\":54,\"text\":\" XFRM\\\\Warning\\\\ResourceUpdate\"}],\"line\":51,\"text\":\" XFRM\\\\Reaction\\\\ResourceUpdate\"},{\"context\":[{\"line\":51,\"text\":\" XFRM\\\\Reaction\\\\ResourceUpdate\"},{\"line\":52,\"text\":\" XFRM\\\\Report\\\\ResourceUpdate\"},{\"line\":53,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceUpdate\"},{\"line\":54,\"text\":\" XFRM\\\\Warning\\\\ResourceUpdate\"},{\"line\":55,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceUpdate\"}],\"line\":52,\"text\":\" XFRM\\\\Report\\\\ResourceUpdate\"},{\"context\":[{\"line\":52,\"text\":\" XFRM\\\\Report\\\\ResourceUpdate\"},{\"line\":53,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceUpdate\"},{\"line\":54,\"text\":\" XFRM\\\\Warning\\\\ResourceUpdate\"},{\"line\":55,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceUpdate\"},{\"line\":56,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceVersion\"}],\"line\":53,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceUpdate\"},{\"context\":[{\"line\":53,\"text\":\" XFRM\\\\Search\\\\Data\\\\ResourceUpdate\"},{\"line\":54,\"text\":\" XFRM\\\\Warning\\\\ResourceUpdate\"},{\"line\":55,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceUpdate\"},{\"line\":56,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceVersion\"},{\"line\":57,\"text\":\" XFRM\\\\Attachment\\\\ResourceVersion\"}],\"line\":54,\"text\":\" XFRM\\\\Warning\\\\ResourceUpdate\"},{\"context\":[{\"line\":54,\"text\":\" XFRM\\\\Warning\\\\ResourceUpdate\"},{\"line\":55,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceUpdate\"},{\"line\":56,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceVersion\"},{\"line\":57,\"text\":\" XFRM\\\\Attachment\\\\ResourceVersion\"},{\"line\":58,\"text\":\" XFRM:ResourceVersion\"}],\"line\":55,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceUpdate\"},{\"context\":[{\"line\":55,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceUpdate\"},{\"line\":56,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceVersion\"},{\"line\":57,\"text\":\" XFRM\\\\Attachment\\\\ResourceVersion\"},{\"line\":58,\"text\":\" XFRM:ResourceVersion\"},{\"line\":59,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceVersion\"}],\"line\":56,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceVersion\"},{\"context\":[{\"line\":56,\"text\":\" XFRM\\\\ApprovalQueue\\\\ResourceVersion\"},{\"line\":57,\"text\":\" XFRM\\\\Attachment\\\\ResourceVersion\"},{\"line\":58,\"text\":\" XFRM:ResourceVersion\"},{\"line\":59,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceVersion\"},{\"line\":60,\"text\":\" xfrm_resource_version\"}],\"line\":57,\"text\":\" XFRM\\\\Attachment\\\\ResourceVersion\"},{\"context\":[{\"line\":57,\"text\":\" XFRM\\\\Attachment\\\\ResourceVersion\"},{\"line\":58,\"text\":\" XFRM:ResourceVersion\"},{\"line\":59,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceVersion\"},{\"line\":60,\"text\":\" xfrm_resource_version\"},{\"line\":61,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceVersion\"}],\"line\":58,\"text\":\" XFRM:ResourceVersion\"},{\"context\":[{\"line\":58,\"text\":\" XFRM:ResourceVersion\"},{\"line\":59,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceVersion\"},{\"line\":60,\"text\":\" xfrm_resource_version\"},{\"line\":61,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceVersion\"},{\"line\":62,\"text\":\"\"}],\"line\":59,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceVersion\"},{\"context\":[{\"line\":59,\"text\":\" XFRM\\\\ModeratorLog\\\\ResourceVersion\"},{\"line\":60,\"text\":\" xfrm_resource_version\"},{\"line\":61,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceVersion\"},{\"line\":62,\"text\":\"\"}],\"line\":60,\"text\":\" xfrm_resource_version\"},{\"context\":[{\"line\":60,\"text\":\" xfrm_resource_version\"},{\"line\":61,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceVersion\"},{\"line\":62,\"text\":\"\"}],\"line\":61,\"text\":\" XFRM\\\\Webhook\\\\Event\\\\ResourceVersion\"}],\"path\":\"/var/www/forums/newfi/public/src/addons/XFRM/_data/content_type_fields.xml\",\"present\":true,\"sha256\":\"0c55319843d04701f1f6fa7fdfeb1ae8883b6d3bb95fceb6e0cf245638543474\"},\"addons/XFRM/_data/routes.xml\":{\"bytes\":3869,\"matches\":[{\"context\":[{\"line\":2,\"text\":\"\"},{\"line\":3,\"text\":\" \"},{\"line\":4,\"text\":\" \"},{\"line\":5,\"text\":\" \"},{\"line\":6,\"text\":\" \"}],\"line\":3,\"text\":\" \"},{\"context\":[{\"line\":3,\"text\":\" \"},{\"line\":4,\"text\":\" \"},{\"line\":5,\"text\":\" \"},{\"line\":6,\"text\":\" \"},{\"line\":7,\"text\":\" \"}],\"line\":4,\"text\":\" \"},{\"context\":[{\"line\":4,\"text\":\" \"},{\"line\":5,\"text\":\" \"},{\"line\":6,\"text\":\" \"},{\"line\":7,\"text\":\" \"},{\"line\":8,\"text\":\" \"}],\"line\":5,\"text\":\" \"},{\"context\":[{\"line\":5,\"text\":\" \"},{\"line\":6,\"text\":\" \"},{\"line\":7,\"text\":\" \"},{\"line\":8,\"text\":\" \"},{\"line\":9,\"text\":\" \"}],\"line\":6,\"text\":\" \"},{\"context\":[{\"line\":6,\"text\":\" \"},{\"line\":7,\"text\":\" \"},{\"line\":8,\"text\":\" \"},{\"line\":9,\"text\":\" \"},{\"line\":10,\"text\":\" \"}],\"line\":7,\"text\":\" \"},{\"context\":[{\"line\":7,\"text\":\" \"},{\"line\":8,\"text\":\" \"},{\"line\":9,\"text\":\" \"},{\"line\":10,\"text\":\" \"},{\"line\":11,\"text\":\" \"}],\"line\":8,\"text\":\" \"},{\"context\":[{\"line\":8,\"text\":\" \"},{\"line\":9,\"text\":\" \"},{\"line\":10,\"text\":\" \"},{\"line\":11,\"text\":\" \"},{\"line\":12,\"text\":\" \"}],\"line\":9,\"text\":\" \"},{\"context\":[{\"line\":9,\"text\":\" \"},{\"line\":10,\"text\":\" \"},{\"line\":11,\"text\":\" \"},{\"line\":12,\"text\":\" \"},{\"line\":13,\"text\":\" \"}],\"line\":10,\"text\":\" \"},{\"context\":[{\"line\":10,\"text\":\" \"},{\"line\":11,\"text\":\" \"},{\"line\":12,\"text\":\" \"},{\"line\":13,\"text\":\" \"},{\"line\":14,\"text\":\" \"}],\"line\":11,\"text\":\" \"},{\"context\":[{\"line\":11,\"text\":\" \"},{\"line\":12,\"text\":\" \"},{\"line\":13,\"text\":\" \"},{\"line\":14,\"text\":\" \"},{\"line\":15,\"text\":\" \"}],\"line\":12,\"text\":\" \"},{\"context\":[{\"line\":12,\"text\":\" \"},{\"line\":13,\"text\":\" \"},{\"line\":14,\"text\":\" \"},{\"line\":15,\"text\":\" \"},{\"line\":16,\"text\":\" \"}],\"line\":13,\"text\":\" \"},{\"context\":[{\"line\":13,\"text\":\" \"},{\"line\":14,\"text\":\" \"},{\"line\":15,\"text\":\" \"},{\"line\":16,\"text\":\" \"},{\"line\":17,\"text\":\" \"}],\"line\":14,\"text\":\" \"},{\"context\":[{\"line\":14,\"text\":\" \"},{\"line\":15,\"text\":\" \"},{\"line\":16,\"text\":\" \"},{\"line\":17,\"text\":\" \"},{\"line\":18,\"text\":\" \"}],\"line\":15,\"text\":\" \"},{\"context\":[{\"line\":15,\"text\":\" \"},{\"line\":16,\"text\":\" \"},{\"line\":17,\"text\":\" \"},{\"line\":18,\"text\":\" \"},{\"line\":19,\"text\":\" \"}],\"line\":16,\"text\":\" \"},{\"context\":[{\"line\":16,\"text\":\" \"},{\"line\":17,\"text\":\" \"},{\"line\":18,\"text\":\" \"},{\"line\":19,\"text\":\" \"},{\"line\":20,\"text\":\" \"}],\"line\":17,\"text\":\" \"},{\"context\":[{\"line\":17,\"text\":\" \"},{\"line\":18,\"text\":\" \"},{\"line\":19,\"text\":\" \"},{\"line\":20,\"text\":\" \"},{\"line\":21,\"text\":\" \"}],\"line\":18,\"text\":\" \"},{\"context\":[{\"line\":18,\"text\":\" \"},{\"line\":19,\"text\":\" \"},{\"line\":20,\"text\":\" \"},{\"line\":21,\"text\":\" \"},{\"line\":22,\"text\":\" \"}],\"line\":19,\"text\":\" \"},{\"context\":[{\"line\":19,\"text\":\" \"},{\"line\":20,\"text\":\" \"},{\"line\":21,\"text\":\" \"},{\"line\":22,\"text\":\" \"},{\"line\":23,\"text\":\" \"}],\"line\":20,\"text\":\" \"},{\"context\":[{\"line\":20,\"text\":\" \"},{\"line\":21,\"text\":\" \"},{\"line\":22,\"text\":\" \"},{\"line\":23,\"text\":\" \"},{\"line\":24,\"text\":\" \"}],\"line\":21,\"text\":\" \"},{\"context\":[{\"line\":21,\"text\":\" \"},{\"line\":22,\"text\":\" \"},{\"line\":23,\"text\":\" \"},{\"line\":24,\"text\":\" \"},{\"line\":25,\"text\":\" \"}],\"line\":22,\"text\":\" \"},{\"context\":[{\"line\":22,\"text\":\" \"},{\"line\":23,\"text\":\" \"},{\"line\":24,\"text\":\" \"},{\"line\":25,\"text\":\" \"},{\"line\":26,\"text\":\" \"}],\"line\":23,\"text\":\" \"},{\"context\":[{\"line\":23,\"text\":\" \"},{\"line\":24,\"text\":\" \"},{\"line\":25,\"text\":\" \"},{\"line\":26,\"text\":\" \"},{\"line\":27,\"text\":\"\"}],\"line\":24,\"text\":\" \"},{\"context\":[{\"line\":24,\"text\":\" \"},{\"line\":25,\"text\":\" \"},{\"line\":26,\"text\":\" \"},{\"line\":27,\"text\":\"\"}],\"line\":25,\"text\":\" \"},{\"context\":[{\"line\":25,\"text\":\" \"},{\"line\":26,\"text\":\" \"},{\"line\":27,\"text\":\"\"}],\"line\":26,\"text\":\" \"}],\"path\":\"/var/www/forums/newfi/public/src/addons/XFRM/_data/routes.xml\",\"present\":true,\"sha256\":\"254372f8f417cada060151063edda30884694a4d0a07eaca959674a80ae078be\"},\"addons/XFRM/_data/templates.xml\":{\"bytes\":244652,\"matches\":[{\"context\":[{\"line\":2,\"text\":\"\"},{\"line\":3,\"text\":\"