{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T21:17:19.898Z","url":"https://verifymcp.io/servers/dev-signops-signops/api","markdownUrl":"https://verifymcp.io/servers/dev-signops-signops/api.md","server":{"slug":"dev-signops-signops","name":"SignOps","registryName":"dev.signops/signops","description":"Send push to Android, iOS and the web, and ask a trusted phone to approve a login, from your agent.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api","type":"remote","identifier":"https://api.signops.dev/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/dev-signops-signops/api","version":"1.0.0","transport":null,"scoredAt":"2026-11-05T10:27:19.173Z"},"score":{"total":73,"tier":"medium","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":73},{"date":"2026-11-04","total":73},{"date":"2026-11-03","total":72},{"date":"2026-11-02","total":72},{"date":"2026-11-01","total":71},{"date":"2026-10-31","total":71},{"date":"2026-10-30","total":70},{"date":"2026-10-29","total":70},{"date":"2026-10-28","total":70},{"date":"2026-10-27","total":69},{"date":"2026-10-26","total":69},{"date":"2026-10-25","total":28}]},"categories":[{"name":"Endpoint Security","score":71,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.","HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.challenge_only_invoke","args":{}},{"code":"https.inconclusive","args":{"reason":"plaintext_status","status":"405"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":68,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Tool/resource definitions use about 1467 tokens (~63/item across 23 items; 23 tools + 0 resources), lean.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_lean","args":{"avg":"63","items":"23","tools":"23","tokens":"1467","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":33,"verdict":"partial","reasons":["Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"10"}}]},{"name":"Tool Coverage","score":99,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","96% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"96"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","All 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.","An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_declared","args":{"pct":"100","annotated":"5","destructive":"5"}},{"code":"toolsafety.manipulation_clean","args":{"units":"24","judged":"24"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement."],"malware":[],"components":[{"slug":"api","type":"remote","identifier":"https://api.signops.dev/mcp","withdrawn":false,"score":73,"current":true,"url":"https://verifymcp.io/servers/dev-signops-signops/api","markdownUrl":"https://verifymcp.io/servers/dev-signops-signops/api.md"}],"facts":[{"label":"Endpoint","value":"https://api.signops.dev/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"required (not validated)"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"send_push","title":"Send a push","description":"Send a push notification to one user (user_id), a list (user_ids, up to 1,000), a topic, or everyone (all: true). Give exactly one target. A push to one user, sent now, answers with its result at once; others answer with status sending or scheduled. With a test key (sk_test_) only test devices receive it.","inputs":[{"name":"all","type":"boolean","required":false,"description":"true to send to every device of the app."},{"name":"body","type":"string","required":false,"description":"The text under it."},{"name":"data","type":"object","required":false,"description":"Key and value pairs the app reads. With no title, the push is silent."},{"name":"fields","type":"object","required":false,"description":"Values for the template's {{fields}}."},{"name":"fields_by_user","type":"object","required":false,"description":"With user_ids: each user's own field values, keyed by user id."},{"name":"idempotency_key","type":"string","required":false,"description":"Optional. The same key within 24 hours replays the first answer instead of sending again."},{"name":"image","type":"string","required":false,"description":"An https image URL."},{"name":"link","type":"string","required":false,"description":"A deep link or URL opened on tap."},{"name":"marketing","type":"boolean","required":false,"description":"true applies the app's daily cap of marketing pushes per user."},{"name":"send_at","type":"string","required":false,"description":"An ISO time with a zone, up to 30 days ahead, like 2026-10-24T18:00:00+05:30."},{"name":"template","type":"string","required":false,"description":"A saved template's name; title, body and the rest come from it."},{"name":"title","type":"string","required":false,"description":"The notification title."},{"name":"topic","type":"string","required":false,"description":"A topic name."},{"name":"user_id","type":"string","required":false,"description":"Your own id for one user."},{"name":"user_ids","type":"array","required":false,"description":"Up to 1,000 of your user ids."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":360},{"name":"get_push","title":"Get a push","description":"One push by id: status, devices, sent and failed, per platform.","inputs":[{"name":"id","type":"string","required":true,"description":"The push id, msg_..."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":37},{"name":"list_pushes","title":"List pushes","description":"Pushes, newest first. On the Free plan only pushes still to go are listed (no delivery logs).","inputs":[{"name":"before","type":"string","required":false,"description":"The next value from the previous page."},{"name":"limit","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":52},{"name":"cancel_push","title":"Cancel a scheduled push","description":"Cancel a push that is scheduled and has not started sending.","inputs":[{"name":"id","type":"string","required":true,"description":"The push id, msg_..."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":33},{"name":"register_device","title":"Register a device","description":"Store a device's push token under your user id. Android and iOS tokens come from the Firebase or Apple SDK; for web, token is the PushSubscription as JSON.","inputs":[{"name":"name","type":"string","required":false,"description":"Optional label, like Rushi's iPhone."},{"name":"platform","type":"string","required":true,"description":null},{"name":"token","type":"string","required":true,"description":"The push token."},{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":90},{"name":"list_devices","title":"List a user's devices","description":"The devices registered for one user id, newest first, with platform and whether each is trusted for approvals.","inputs":[{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"remove_device","title":"Remove a device","description":"Remove one device by id; it gets no more pushes.","inputs":[{"name":"id","type":"string","required":true,"description":"The device id, dev_..."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":33},{"name":"list_topics","title":"List topics","description":"Topics with how many users each has.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":16},{"name":"subscribe_topic","title":"Subscribe a user to a topic","description":"Add a user to a topic. The topic exists once it has a user.","inputs":[{"name":"topic","type":"string","required":true,"description":"Up to 64 letters, digits, dashes, dots or underscores."},{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":59},{"name":"unsubscribe_topic","title":"Unsubscribe a user from a topic","description":"Take a user off a topic.","inputs":[{"name":"topic","type":"string","required":true,"description":"The topic name."},{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":39},{"name":"list_templates","title":"List templates","description":"Saved push templates with their fields.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":15},{"name":"get_template","title":"Get a template","description":"One template by name.","inputs":[{"name":"name","type":"string","required":true,"description":"The template name, like payment_received."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":27},{"name":"save_template","title":"Save a template","description":"Create or replace a template. Put {{field}} where a value goes, or {{field|default}} for one with a fallback.","inputs":[{"name":"body","type":"string","required":false,"description":"Body, with {{fields}}."},{"name":"data","type":"object","required":false,"description":"Optional data, with {{fields}} in the values."},{"name":"image","type":"string","required":false,"description":"Optional image URL."},{"name":"link","type":"string","required":false,"description":"Optional link."},{"name":"name","type":"string","required":true,"description":"Lowercase letters, digits and underscores."},{"name":"title","type":"string","required":false,"description":"Title, with {{fields}}."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":111},{"name":"delete_template","title":"Delete a template","description":"Delete a template by name. Pushes already made from it are not changed.","inputs":[{"name":"name","type":"string","required":true,"description":"The template name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":34},{"name":"create_approval","title":"Ask a user to approve","description":"Send an approval request to the user's trusted phone, with number matching. The user must have a phone enrolled through the SignOps SDK.","inputs":[{"name":"context","type":"string","required":true,"description":"What they are approving, up to 120 characters, like Sign in from Chrome on Windows."},{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":75},{"name":"get_approval","title":"Get an approval","description":"An approval request's status: pending, approved, denied, expired or cancelled.","inputs":[{"name":"id","type":"string","required":true,"description":"The approval id, apr_..."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"cancel_approval","title":"Cancel an approval","description":"Cancel a pending approval request.","inputs":[{"name":"id","type":"string","required":true,"description":"The approval id, apr_..."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":28},{"name":"list_passkeys","title":"List a user's passkeys","description":"The passkeys registered for one user id.","inputs":[{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":32},{"name":"get_authenticator","title":"Get a user's authenticator","description":"Whether a user has an authenticator app (TOTP) confirmed, when it was last used, backup codes left, and whether wrong codes have locked them.","inputs":[{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":55},{"name":"remove_authenticator","title":"Remove a user's authenticator","description":"Remove a user's authenticator app and backup codes, for a lost phone. They can enrol again.","inputs":[{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"unlock_user","title":"Unlock a user","description":"Clear the lock that five wrong codes in 15 minutes put on a user, and their count of wrong codes.","inputs":[{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45},{"name":"export_user","title":"Export a user's data","description":"Everything SignOps holds on one user id as JSON: devices (tokens shortened), topics, passkeys, authenticator status, approvals of the last 90 days, consent history and pushes sent to them.","inputs":[{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":63},{"name":"get_consent","title":"Get a user's consent","description":"The latest consent answer per purpose for one user, like marketing_push, and the history.","inputs":[{"name":"user_id","type":"string","required":true,"description":"Your own id for the user."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":41}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T10:27:19.000Z","track":"remote","endpoint":"https://api.signops.dev/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=signops.dev","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-10-20T01:56:18Z","notAfter":"2027-01-18T02:56:15Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"api.signops.dev.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"dev.","outcome":"verified","label":"Verified"},{"zone":"signops.dev.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"challenged_unvalidated","label":"Challenged, unverified","gate":"invoke","gateLabel":"On tool calls","status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":405},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-25","recent":[{"id":"chg_01a1a616-1062-76d8-8e15-149aa8e1c83e","kind":"score.total_changed","summary":"Trust score (72 → 73)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a1a616-1062-76d8-8e15-149aa8e1c83e"},{"id":"chg_01a19bc9-c9ee-75ab-9358-9c5b335fbae4","kind":"score.total_changed","summary":"Trust score (71 → 72)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a19bc9-c9ee-75ab-9358-9c5b335fbae4"},{"id":"chg_01a1917c-52f6-744c-a09b-db37f3ca56c9","kind":"score.total_changed","summary":"Trust score (70 → 71)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a1917c-52f6-744c-a09b-db37f3ca56c9"},{"id":"chg_01a18208-4ee0-78a7-8ee3-81881d60ccd0","kind":"score.total_changed","summary":"Trust score (69 → 70)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a18208-4ee0-78a7-8ee3-81881d60ccd0"},{"id":"chg_01a17ce2-635b-79b4-a7a2-8b4b0c7488c0","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a17ce2-635b-79b4-a7a2-8b4b0c7488c0"},{"id":"chg_01a177bb-18bb-7d3d-b6e5-1c61b5c29488","kind":"check.reverified","summary":"Transport (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18bb-7d3d-b6e5-1c61b5c29488"},{"id":"chg_01a177bb-18bc-7a19-8dfb-bcc9562dd88c","kind":"check.reverified","summary":"Injection markers (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18bc-7a19-8dfb-bcc9562dd88c"},{"id":"chg_01a177bb-18bd-713f-a8c6-9ce5c9f3cd9a","kind":"check.reason","summary":"Authorization (Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18bd-713f-a8c6-9ce5c9f3cd9a"},{"id":"chg_01a177bb-18bd-7d4f-8375-409662d0b0bf","kind":"check.appeared","summary":"First check of Judged manipulation (pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18bd-7d4f-8375-409662d0b0bf"},{"id":"chg_01a177bb-18be-7418-ac3a-c9678be1380d","kind":"check.reverified","summary":"MCP protocol (unverified → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18be-7418-ac3a-c9678be1380d"},{"id":"chg_01a177bb-18be-79d5-bd99-e64c7c29ccb6","kind":"check.reverified","summary":"Tool coverage (unverified → 100)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18be-79d5-bd99-e64c7c29ccb6"},{"id":"chg_01a177bb-18bf-703e-98ca-61620a1c106f","kind":"check.appeared","summary":"First check of Schema quality (fail)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18bf-703e-98ca-61620a1c106f"},{"id":"chg_01a177bb-18bf-755b-931a-ad8fd77bf206","kind":"check.appeared","summary":"First check of Tool coverage (96)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18bf-755b-931a-ad8fd77bf206"},{"id":"chg_01a177bb-18bf-7a73-b4e9-e90bdc1bcdb7","kind":"check.appeared","summary":"First check of Destructive annotations (100)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18bf-7a73-b4e9-e90bdc1bcdb7"},{"id":"chg_01a177bb-18c0-7185-ab79-76f6c35e72fe","kind":"check.appeared","summary":"First check of Schema quality (pass)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18c0-7185-ab79-76f6c35e72fe"},{"id":"chg_01a177bb-18c0-77e7-b3fc-d23358078c4e","kind":"check.appeared","summary":"First check of Schema quality (good)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18c0-77e7-b3fc-d23358078c4e"},{"id":"chg_01a177bb-18c0-7e2c-a957-f77ddb358de0","kind":"score.total_changed","summary":"Trust score (28 → 69)","materiality":"functional","direction":"improvement","scoreDelta":41,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a177bb-18c0-7e2c-a957-f77ddb358de0"},{"id":"chg_01a174a7-fbbe-7dfb-890d-a20d1cc901b0","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/dev-signops-signops/api#chg-chg_01a174a7-fbbe-7dfb-890d-a20d1cc901b0"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/dev-signops-signops/api/changelog.json"},"links":{"html":"https://verifymcp.io/servers/dev-signops-signops/api","markdown":"https://verifymcp.io/servers/dev-signops-signops/api.md","changelogJson":"https://verifymcp.io/servers/dev-signops-signops/api/changelog.json","changelogRss":"https://verifymcp.io/servers/dev-signops-signops/api.xml","external":[{"label":"Remote endpoint","href":"https://api.signops.dev/mcp"},{"label":"Authorisation metadata","href":"https://api.signops.dev/.well-known/oauth-protected-resource/mcp"},{"label":"Website","href":"https://signops.dev/docs/#mcp"}]}}