{"id":996,"date":"2013-07-21T15:22:13","date_gmt":"2013-07-21T07:22:13","guid":{"rendered":"http:\/\/www.yallonking.com\/?p=996"},"modified":"2013-07-21T15:58:44","modified_gmt":"2013-07-21T07:58:44","slug":"bbed%e6%81%a2%e5%a4%8d%e5%b7%b2%e5%88%a0%e9%99%a4%e7%9a%84%e8%a1%8c%e8%ae%b0%e5%bd%95","status":"publish","type":"post","link":"http:\/\/www.yallonking.com\/?p=996","title":{"rendered":"BBED\u6062\u590d\u5df2\u5220\u9664\u7684\u884c\u8bb0\u5f55"},"content":{"rendered":"<p><strong>\u53c2\u8003\u6587\u6863\uff1adisassembling the oracle data block,writter by graham thornton 2005<\/strong><br \/>\n\u64cd\u4f5c\u7cfb\u7edf\u4fe1\u606f<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\n[oracle@rhl6 lib]$ uname -a\r\nLinux rhl6.0x64 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU\/Linux\r\n<\/pre>\n<p>\u6570\u636e\u5e93\u7248\u672c<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; set line 400  \r\nSQL&gt; select * from gv$version;\r\n\r\n   INST_ID BANNER\r\n---------- --------------------------------------------------------------------------------\r\n         1 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\r\n         1 PL\/SQL Release 11.2.0.3.0 - Production\r\n         1 CORE 11.2.0.3.0      Production\r\n         1 TNS for Linux: Version 11.2.0.3.0 - Production\r\n         1 NLSRTL Version 11.2.0.3.0 - Production\r\n\r\n<\/pre>\n<p>\u6d4b\u8bd5\u6570\u636e<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; sho user\r\nUSER is &quot;YALLONKING&quot;\r\nSQL&gt; select rowid,t.* from yallonking t;\r\n\r\nROWID                      ID NAME                 MY_DATE\r\n------------------ ---------- -------------------- -------------------\r\nAAARcnAAFAAAACEAAA          1 yallonking           2013\/07\/21 11:12:03\r\nAAARcnAAFAAAACEAAB          2 oraking              2013\/07\/21 11:12:09\r\nAAARcnAAFAAAACEAAC          3 xiaolong             2013\/07\/21 11:12:17\r\n<\/pre>\n<p>\u5220\u9664\u7b2c\u4e09\u884c\u8bb0\u5f55\uff0c\u66f4\u65b0\u7b2c\u4e8c\u884c\u8bb0\u5f55<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; delete from yallonking where id=3;\r\n\r\n1 row deleted.\r\n\r\nSQL&gt; commit;\r\n\r\nCommit complete.\r\n\r\nSQL&gt; update yallonking set name=&#039;YALLONKING&#039; where id=2;\r\n\r\n1 row updated.\r\n\r\nSQL&gt; commit;\r\n\r\nCommit complete.\r\n\r\nSQL&gt; select rowid,t.* from yallonking t;\r\n\r\nROWID                      ID NAME                 MY_DATE\r\n------------------ ---------- -------------------- -------------------\r\nAAARcnAAFAAAACEAAA          1 yallonking           2013\/07\/21 11:12:03\r\nAAARcnAAFAAAACEAAB          2 YALLONKING           2013\/07\/21 11:12:09\r\n<\/pre>\n<p>\u9996\u5148\u6bd4\u5bf9\u4e0b\u8fd9\u4e2a\u8868\u4e09\u884c\u8bb0\u5f55\u7684row flag\u503c<br \/>\n\u7531\u4e8e\u8bb0\u5f55\u5f88\u5c11\uff0c\u6240\u4ee5\u8868\u4e0a\u7684\u8bb0\u5f55\u4f1a\u5728\u4e00\u4e2ablock\u4e0a\u7684\u4e0d\u540coffset<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; sho user\r\nUSER is &quot;SYS&quot;\r\nSQL&gt; select get_rowid(&#039;AAARcnAAFAAAACEAAA&#039;) from dual;\r\n\r\nGET_ROWID(&#039;AAARCNAAFAAAACEAAA&#039;)\r\n--------------------------------------------------------------------------------\r\nRow_id type is  :1\r\nObject# is      :71463\r\nRelative_fno is :5\r\nBlock number is :132\r\nRow number is   :0\r\n<\/pre>\n<p>\u8f6c\u50a8\u6307\u5b9a\u5757<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; alter session set tracefile_identifier=&#039;wyl&#039;;\r\n\r\nSession altered.\r\n\r\nSQL&gt; alter system checkpoint;\r\n\r\nSystem altered.\r\n\r\nSQL&gt; alter system dump datafile 5 block 132;\r\n\r\nSystem altered.\r\n<\/pre>\n<p>\u67e5\u770b\u8f6c\u50a8\u6587\u4ef6\u4e2d\u5173\u4e8ebitmask\u7684\u503c\uff08--H-FL--\uff09<br \/>\n\u5173\u4e8ebitmask\u4e2d8\u4f4d\u7684\u8bf4\u660e\u5982\u4e0b\u56fe<br \/>\n<a href=\"http:\/\/www.yallonking.com\/wp-content\/uploads\/2013\/07\/bbed_bitmask.png\" class=\"cboxElement\" rel=\"example_group\"996><img loading=\"lazy\" src=\"http:\/\/www.yallonking.com\/wp-content\/uploads\/2013\/07\/bbed_bitmask-1024x439.png\" alt=\"bbed_bitmask\" width=\"600\" height=\"400\" class=\"aligncenter size-large wp-image-997\" \/><\/a><\/p>\n<p>\u6b64\u5904\u53d1\u73b0\uff0c\u66f4\u65b0\u64cd\u4f5c\uff0c\u5728bitmask\u4e2d\u4e0d\u4f1a\u6709\u6807\u6ce8\u3002<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\n[root@rhl6 trace]# pwd\r\n\/u01\/app\/oracle\/diag\/rdbms\/ora11gr2\/ora11gr2\/trace\r\n[root@rhl6 trace]# grep &#039;Block header dump&#039; -A 100 ora11gr2_ora_11206_wyl.trc \r\nBlock header dump:  0x01400084\r\n Object id on Block? Y\r\n seg\/obj: 0x11727  csc: 0x00.ba7e9  itc: 2  flg: E  typ: 1 - DATA\r\n     brn: 0  bdba: 0x1400080 ver: 0x01 opc: 0\r\n     inc: 0  exflg: 0\r\n \r\n Itl           Xid                  Uba         Flag  Lck        Scn\/Fsc\r\n0x01   0x0002.01d.000002b8  0x00c00715.00b7.14  --U-    1  fsc 0x0000.000bab1a\r\n0x02   0x0005.012.000002b0  0x00c03464.0097.22  --U-    1  fsc 0x0015.000ba7eb\r\nbdba: 0x01400084\r\ndata_block_dump,data header at 0x7f539b40ca64\r\n===============\r\ntsiz: 0x1f98\r\nhsiz: 0x18\r\npbl: 0x7f539b40ca64\r\n     76543210\r\nflag=--------\r\nntab=1\r\nnrow=3\r\nfrre=-1\r\nfsbo=0x18\r\nfseo=0x1f39\r\navsp=0x1f37\r\ntosp=0x1f4e\r\n0xe:pti[0]      nrow=3  offs=0\r\n0x12:pri[0]     offs=0x1f7f\r\n0x14:pri[1]     offs=0x1f39\r\n0x16:pri[2]     offs=0x1f52\r\nblock_row_dump:\r\ntab 0, row 0, @0x1f7f\r\ntl: 25 fb: --H-FL-- lb: 0x0  cc: 3\r\ncol  0: [ 2]  c1 02\r\ncol  1: [10]  79 61 6c 6c 6f 6e 6b 69 6e 67\r\ncol  2: [ 7]  78 71 07 15 0c 0d 04\r\ntab 0, row 1, @0x1f39\r\ntl: 25 fb: --H-FL-- lb: 0x1  cc: 3\r\ncol  0: [ 2]  c1 03\r\ncol  1: [10]  59 41 4c 4c 4f 4e 4b 49 4e 47\r\ncol  2: [ 7]  78 71 07 15 0c 0d 0a\r\ntab 0, row 2, @0x1f52\r\ntl: 2 fb: --HDFL-- lb: 0x2 \r\nend_of_block_dump\r\nEnd dump data blocks tsn: 5 file#: 5 minblk 132 maxblk 132\r\n<\/pre>\n<p>\u6ce8\uff1a\u6b64\u5904\u53ef\u4ee5\u770b\u5230\u8be5\u5757\u4e2d\u67093\u884c\u8be5\u8868\u7684\u8bb0\u5f55\uff0c\u5176\u4e2d\u7b2c\u4e09\u884c\uff08tab 0, row 2\uff09\u5df2\u7ecf\u88ab\u6807\u8bb0\u4e3a\u5220\u9664\uff08--HDFL--\uff09<\/p>\n<p>\u4f7f\u7528bbed\u8fdb\u884c\u4fee\u6539<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; col file_name for a50\r\nSQL&gt; set line 400\r\nSQL&gt; select FILE_NAME,b.TABLESPACE_NAME from dba_data_files a,dba_tables b where a.TABLESPACE_NAME=b.TABLESPACE_NAME and b.table_name=&#039;YALLONKING&#039;;\r\n\r\nFILE_NAME                                          TABLESPACE_NAME\r\n-------------------------------------------------- ------------------------------\r\n\/u01\/app\/oracle\/oradata\/ora11gr2\/users01.dbf       USERS\r\n\r\nBBED&gt; show all\r\n        FILE#           5\r\n        BLOCK#          1\r\n        OFFSET          0\r\n        DBA             0x01400001 (20971521 5,1)\r\n        FILENAME        \/u01\/app\/oracle\/oradata\/ora11gr2\/yallonking01.dbf\r\n        BIFILE          bifile.bbd\r\n        LISTFILE        \/home\/oracle\/bbedfile.lst\r\n        BLOCKSIZE       8192\r\n        MODE            Edit\r\n        EDIT            Unrecoverable\r\n        IBASE           Dec\r\n        OBASE           Dec\r\n        WIDTH           80\r\n        COUNT           512\r\n        LOGFILE         log.bbd\r\n        SPOOL           No\r\n\r\nBBED&gt; set dba 5,132   \r\n        DBA             0x01400084 (20971652 5,132)\r\n\r\nBBED&gt; find \/c xiaolong\r\n File: \/u01\/app\/oracle\/oradata\/ora11gr2\/yallonking01.dbf (5)\r\n Block: 132              Offsets: 8125 to 8191           Dba:0x01400084\r\n------------------------------------------------------------------------\r\n 7869616f 6c6f6e67 07787107 150c0d12 2c000302 c103076f 72616b69 6e670778 \r\n 7107150c 0d0a2c00 0302c102 0a79616c 6c6f6e6b 696e6707 78710715 0c0d0402 \r\n 061aab \r\n\r\n &lt;32 bytes per line&gt;\r\n \r\nBBED&gt; find \/c xiaolong TOP\r\n File: \/u01\/app\/oracle\/oradata\/ora11gr2\/yallonking01.dbf (5)\r\n Block: 132              Offsets: 8125 to 8191           Dba:0x01400084\r\n------------------------------------------------------------------------\r\n 7869616f 6c6f6e67 07787107 150c0d12 2c000302 c103076f 72616b69 6e670778 \r\n 7107150c 0d0a2c00 0302c102 0a79616c 6c6f6e6b 696e6707 78710715 0c0d0402 \r\n 061aab \r\n\r\n &lt;32 bytes per line&gt; \r\n<\/pre>\n<p>\u6ce8\uff1atop\u6307\u5b9a\u4eceoffset 0 \u5f00\u59cb\uff0ccurr\u6307\u5b9a\u4ece\u5f53\u524d\u4f4d\u7f6e\u5f00\u59cb<br \/>\n\u6b64\u5904\u53d1\u73b0\u5b57\u7b26xiaolong\u7684offset\u662f8125\uff0c\u6211\u4eec\u9700\u8981\u4ece\u8be5\u4f4d\u7f6e\u5411\u524d\u627e\u5230\u884c\u9996\u4f4d\u7f6e\u5e76\u67e5\u770b\u5176bitmask\u7684\u503c\uff0c\u4e5f\u8bf4\u660e\u6211\u4eec\u8981\u627e\u7684offset\u80af\u5b9a\u57288125\u4e4b\u524d<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nBBED&gt; map \/v dba 5,132\r\n File: \/u01\/app\/oracle\/oradata\/ora11gr2\/yallonking01.dbf (5)\r\n Block: 132                                   Dba:0x01400084\r\n------------------------------------------------------------\r\n KTB Data Block (Table\/Cluster)\r\n\r\n struct kcbh, 20 bytes                      @0\t\t\t&lt;&lt;\u5757\u5934\u7ed3\u6784       \r\n    ub1 type_kcbh                           @0\t\t\t&lt;&lt;\u5757\u7c7b\u578b       \r\n    ub1 frmt_kcbh                           @1\t\t\t&lt;&lt;\u5757\u683c\u5f0f\uff081\u4e3aoracle 7,2\u4e3aoracle 8+\uff09       \r\n    ub1 spare1_kcbh                         @2       \t\r\n    ub1 spare2_kcbh                         @3       \t\r\n    ub4 rdba_kcbh                           @4       \t&lt;&lt;\u76f8\u5173\u7684\u6570\u636e\u5757\u5730\u5740\r\n    ub4 bas_kcbh                            @8       \t&lt;&lt;SCN base\r\n    ub2 wrp_kcbh                            @12      \t&lt;&lt;SCN Wrap\r\n    ub1 seq_kcbh                            @14      \t&lt;&lt;\u5e8f\u5217\u53f7\r\n    ub1 flg_kcbh                            @15      \r\n    ub2 chkval_kcbh                         @16      \r\n    ub2 spare3_kcbh                         @18      \r\n\r\n struct ktbbh, 72 bytes                     @20      \r\n    ub1 ktbbhtyp                            @20      \r\n    union ktbbhsid, 4 bytes                 @24      \r\n    struct ktbbhcsc, 8 bytes                @28      \r\n    sb2 ktbbhict                            @36      \r\n    ub1 ktbbhflg                            @38      \r\n    ub1 ktbbhfsl                            @39      \r\n    ub4 ktbbhfnx                            @40      \r\n    struct ktbbhitl[2], 48 bytes            @44      \r\n\r\n struct kdbh, 14 bytes                      @100     \r\n    ub1 kdbhflag                            @100     \r\n    sb1 kdbhntab                            @101     \r\n    sb2 kdbhnrow                            @102     \r\n    sb2 kdbhfrre                            @104     \r\n    sb2 kdbhfsbo                            @106     \r\n    sb2 kdbhfseo                            @108     \r\n    sb2 kdbhavsp                            @110     \r\n    sb2 kdbhtosp                            @112     \r\n\r\n struct kdbt[1], 4 bytes                    @114     \r\n    sb2 kdbtoffs                            @114     \r\n    sb2 kdbtnrow                            @116     \r\n\r\n sb2 kdbr[3]                                @118\t\t\t&lt;&lt;\u884c\u76ee\u5f55     \r\n\r\n ub1 freespace[7969]                        @124\t\t\t&lt;&lt;\u7a7a\u95f2\u7a7a\u95f4     \r\n\r\n ub1 rowdata[95]                            @8093    \t\t&lt;&lt;\u884c\u6570\u636e\r\n\r\n ub4 tailchk                                @8188 \r\n<\/pre>\n<p>\u67e5\u770b\u8868\u4e2d3\u884c\u8bb0\u5f55\u7684bitmask\u503c\u5e76\u8bb0\u5f55\u4ed6\u4eec\u7684offset\u503c<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nBBED&gt; p *kdbr[0]\t\t\t&lt;&lt;\u7b2c\u4e00\u884c\u8bb0\u5f55\r\nrowdata[70]\r\n-----------\r\nub1 rowdata[70]                             @8163     0x2c\r\n\r\nBBED&gt; p *kdbr[1]\t\t\t&lt;&lt;\u7b2c\u4e8c\u884c\u8bb0\u5f55\r\nrowdata[0]\r\n----------\r\nub1 rowdata[0]                              @8093     0x2c\r\n\r\nBBED&gt; p *kdbr[2]\t\t\t&lt;&lt;\u7b2c\u4e09\u884c\u8bb0\u5f55\uff0c\u6b64\u5904\u76842\u53ef\u4ee5\u4ece\u4e4b\u524d\u7684trace\u4e2d\u6807\u8bb0\u4e3a&#039;--HDFL--&#039;\u5904\u83b7\u5f97\r\nrowdata[25]\r\n-----------\r\nub1 rowdata[25]                             @8118     0x3c\r\n<\/pre>\n<p>\u6ce8\u610f\uff1a\u524d2\u884c\u8bb0\u5f55\u90fd\u662f0x2c\uff08\u5341\u8fdb\u5236\u76842*16+12=44= --H-FL-- =0+0+32+0+8+4+0+0=44\uff09<br \/>\n\u7b2c\u4e09\u884c\u8bb0\u5f55\u662f0x3c\uff08\u5341\u8fdb\u5236\u76843*16+12=60= --HDFL-- =0+0+32+16+8+4+0+0=60\uff09<br \/>\n\u6240\u4ee5\uff0c\u6211\u4eec\u5728\u8fd9\u91cc\u53ea\u9700\u8981\u5c06\u7b2c\u4e09\u884c\u7684bitmask\u4ece0x3c\u6539\u4e3a0x2c\uff0c\u4e5f\u5c31\u662f\u5c06\u4e4b\u524d\u7684trace\u4e2d\u7684\u2018--HDFL--\u2019 \u6539\u4e3a \u2018--H-FL--\u2019\u5373\u53ef\uff0c\u4e5f\u5c31\u662f\u628a60\u53d8\u4e3a44\u5373\u53ef\u3002<\/p>\n<p>\u4e0a\u8fb9\u6211\u4eec\u5df2\u627e\u5230\u4e86\u9700\u8981\u4fee\u6539\u7684offset\u4f4d\u7f6e\u4e86\uff0c\u4e0b\u8fb9\u8fdb\u884c\u4fee\u6539\u5373\u53ef\u3002<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nBBED&gt; dump \/v dba 5,132 offset 8118\r\n File: \/u01\/app\/oracle\/oradata\/ora11gr2\/yallonking01.dbf (5)\r\n Block: 132     Offsets: 8118 to 8191  Dba:0x01400084\r\n-------------------------------------------------------\r\n 3c020302 c1040878 69616f6c 6f6e6707 l &lt;...\u00e1..xiaolong.\r\n 78710715 0c0d122c 000302c1 03076f72 l xq.....,...\u00e1..or\r\n 616b696e 67077871 07150c0d 0a2c0003 l aking.xq.....,..\r\n 02c1020a 79616c6c 6f6e6b69 6e670778 l .\u00e1..yallonking.x\r\n 7107150c 0d040206 1aab              l q........?\r\n\r\n &lt;16 bytes per line&gt;\r\n\r\nBBED&gt; modify \/x 2c dba 5,132 offset 8118    &lt;&lt;\/x\u662f\u6307\u4fee\u6539\u7c7b\u578b\u4e3a16\u8fdb\u5236\r\n File: \/u01\/app\/oracle\/oradata\/ora11gr2\/yallonking01.dbf (5)\r\n Block: 132              Offsets: 8118 to 8191           Dba:0x01400084\r\n------------------------------------------------------------------------\r\n 2c020302 c1040878 69616f6c 6f6e6707 78710715 0c0d122c 000302c1 03076f72 \r\n 616b696e 67077871 07150c0d 0a2c0003 02c1020a 79616c6c 6f6e6b69 6e670778 \r\n 7107150c 0d040206 1aab \r\n\r\n &lt;32 bytes per line&gt;\r\n\r\nBBED&gt; dump \/v dba 5,132 offset 8118\r\n File: \/u01\/app\/oracle\/oradata\/ora11gr2\/yallonking01.dbf (5)\r\n Block: 132     Offsets: 8118 to 8191  Dba:0x01400084\r\n-------------------------------------------------------\r\n 2c020302 c1040878 69616f6c 6f6e6707 l ,...\u00e1..xiaolong.\r\n 78710715 0c0d122c 000302c1 03076f72 l xq.....,...\u00e1..or\r\n 616b696e 67077871 07150c0d 0a2c0003 l aking.xq.....,..\r\n 02c1020a 79616c6c 6f6e6b69 6e670778 l .\u00e1..yallonking.x\r\n 7107150c 0d040206 1aab              l q........?\r\n\r\n &lt;16 bytes per line&gt;\r\n<\/pre>\n<p>\u6ce8\u610f\uff1a\u4e0a\u8fb9\u7684\u4fee\u6539\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u51fa\u5df2\u7ecf\u5c063c\u6539\u4e3a\u4e862c<\/p>\n<p>\u4e0b\u8fb9\u8fd4\u56de\u5230\u6570\u636e\u5e93\u67e5\u770b\u6062\u590d\u7684\u8bb0\u5f55\u3002<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; alter system flush BUFFER_CACHE;\r\n\r\nSystem altered.\r\n\r\nSQL&gt; select rowid,t.* from yallonking t;\r\n\r\nROWID                      ID NAME                 MY_DATE\r\n------------------ ---------- -------------------- -------------------\r\nAAARcnAAFAAAACEAAA          1 yallonking           2013\/07\/21 11:12:03\r\nAAARcnAAFAAAACEAAB          2 YALLONKING           2013\/07\/21 11:12:09\r\nAAARcnAAFAAAACEAAC          3 xiaolong             2013\/07\/21 11:12:17\r\n<\/pre>\n<p>\u81f3\u6b64ok\uff01 <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u53c2\u8003\u6587\u6863\uff1adisassembling the oracle data block,writter by gra [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[40],"tags":[222,225],"_links":{"self":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts\/996"}],"collection":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=996"}],"version-history":[{"count":10,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts\/996\/revisions"}],"predecessor-version":[{"id":1007,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts\/996\/revisions\/1007"}],"wp:attachment":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=996"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=996"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}