Index: defs/attributes.dtd
diff -Nau defs/attributes.dtd.orig defs/attributes.dtd
--- defs/attributes.dtd.orig	2001-11-15 16:31:09.000000000 +0100
+++ defs/attributes.dtd	2004-03-10 16:52:58.000000000 +0100
@@ -47,7 +47,12 @@
   wk_asrange    |
   wk_filterset  |
   wk_peeringset |
-  wk_rtrset
+  wk_rtrset	|
+  wk_regid      |
+  wk_pop        |
+  wk_ticket     |
+  wk_range      |
+  wk_purpose
 )'>
 
 <!ENTITY % Radix_Keytype_t '(
@@ -76,6 +81,8 @@
   ud_ax_mo  |
   ud_ax_mr  |
   ud_ax_mu  |
+  ud_ax_pp  |
+  ud_ax_pu  |
   ud_leaf_  |
   ud_lf_if  |
   ud_lf_rf  |
Index: defs/attributes.xml
diff -Nau defs/attributes.xml.orig defs/attributes.xml
--- defs/attributes.xml.orig	2003-08-05 16:24:11.000000000 +0200
+++ defs/attributes.xml	2004-03-10 16:52:58.000000000 +0100
@@ -2118,4 +2118,515 @@
     <syntax>non-core</syntax>
   </ripe_attribute>
 
+
+<!--  =============================== -->
+<!--   Start of ECRC/CW EU Attributes -->
+<!--  =============================== -->
+
+  <ripe_attribute name="reg-id" code="ri">
+   
+    <description>
+       GSOC EU INTERNAL
+       RIPE Registry ID 
+    </description>
+
+    <syntax>free-form</syntax>
+
+    <representation> 
+    <sqltable name="reg_id">
+      <insert qtype="ud_main_">
+        INSERT reg_id
+        SET thread_id=%d, object_id=%ld, reg_id='%s', reg_window=0
+      </insert>
+      <update qtype="ud_main_"></update>
+      <select qtype="ud_main_">
+        reg_id='%s' AND
+      </select>
+    </sqltable>
+    </representation>
+
+    <keys searchable="lookup">
+      <primary/>
+      <queries>
+        <sqlquery keytype="wk_regid" >
+          SELECT object_id
+          FROM   reg_id
+          WHERE  reg_id = '%s'
+	  AND	 thread_id = 0
+        </sqlquery>
+      </queries>
+    </keys>
+  </ripe_attribute>
+
+
+  <ripe_attribute name="window" code="ww">
+
+    <description>
+      GSOC EU INTERNAL
+      Assignement Window size of a particular LIR
+    </description>
+
+    <syntax>window</syntax>
+
+    <representation> 
+      <sqltable name="reg_id">
+	<insert qtype="ud_ma_u2">
+	  UPDATE %s SET thread_id=%d, reg_window='%s'
+	  WHERE object_id=%ld
+	</insert>
+	<update qtype="ud_ma_u2">
+	  UPDATE %s SET thread_id=%d, reg_window='%s'
+	  WHERE object_id=%ld
+	</update>
+      </sqltable>
+    </representation> 
+
+  </ripe_attribute>
+
+
+ <ripe_attribute name="as-num" code="ax">
+
+    <description>
+      GSOC EU INTERNAL
+      ASN which is used by a registry or a pop
+    </description>
+
+    <syntax>as-number</syntax>
+
+    <representation> 
+    <sqltable name="as_ref">
+      <insert qtype="ud_aux__">
+        INSERT as_ref
+        SELECT %d, %ld, aut_num.object_id, %d
+        FROM aut_num
+        WHERE aut_num.aut_num='%s'
+      </insert>
+      <update qtype="ud_ax_ax">
+        UPDATE as_ref
+        SET thread_id=%d
+        WHERE object_id=%ld
+        AND   as_id=%ld
+      </update>
+    </sqltable>
+    </representation>
+
+    <keys searchable="inverse">
+      <foreign value="an"/>
+
+      <queries>
+        <sqlquery keytype="wk_autnum" class="ANY">
+          SELECT i.object_id
+          FROM   aut_num, as_ref i
+          WHERE  aut_num.object_id = i.as_id
+          AND    aut_num.aut_num  = '%s'
+          AND    i.thread_id = 0
+        </sqlquery>
+      </queries>
+    </keys>
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="facility" code="pp">
+    <description>
+      GSOC EU INTERNAL
+      
+      Contains Details for which location, facility or region a certain
+      ip-range has been reserved for.
+      
+      See also "purpose" Object.
+    </description>
+
+    <syntax>free-form</syntax>
+
+    <representation> 
+    <sqltable name="pop">
+      <insert qtype="ud_main_">
+        INSERT pop
+        SET thread_id=%d, object_id=%ld, pop='%s', remedyref='fresh_insert'
+      </insert>
+      <update qtype="ud_main_"></update>
+      <select qtype="ud_main_">
+        pop='%s' AND
+      </select>
+    </sqltable>
+    </representation>
+
+    <keys searchable="lookup">
+      <primary/>
+      <queries>
+        <sqlquery keytype="wk_pop" >
+          SELECT object_id
+          FROM   pop
+          WHERE  pop = '%s'
+	  AND	 thread_id = 0
+        </sqlquery>
+      </queries>
+    </keys>
+  </ripe_attribute>
+
+
+  <ripe_attribute name="remedyref" code="rr">
+    <description>
+      GSOC EU INTERNAL
+
+      Remedey Reference Field. May contain references to the local
+      ticket-management system in the future.
+    </description>
+
+    <syntax>free-form</syntax>
+
+   <representation> 
+      <sqltable name="pop">
+        <insert qtype="ud_ma_u2">
+          UPDATE %s SET thread_id=%d, remedyref='%s'
+          WHERE object_id=%ld
+        </insert>
+        <update qtype="ud_ma_u2">
+          UPDATE %s SET thread_id=%d, remedyref='%s'
+          WHERE object_id=%ld
+        </update>
+      </sqltable>
+    </representation> 
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="ticket" code="tk">
+    <description>
+      GSOC EU INTERNAL
+
+      Registry Ticket-Number of the allocation/assignment confirmation.
+    </description>
+   
+    <syntax>free-form</syntax>
+
+    <representation> 
+    <sqltable name="ticket">
+      <insert qtype="ud_main_">
+        INSERT ticket
+        SET thread_id=%d, object_id=%ld, ticket='%s', netname='-'
+      </insert>
+      <update qtype="ud_main_"></update>
+      <select qtype="ud_main_">
+        ticket='%s' AND
+      </select>
+    </sqltable>
+    </representation>
+    <keys searchable="lookup">
+      <primary/>
+      <queries>
+        <sqlquery keytype="wk_ticket" >
+          SELECT object_id
+          FROM   ticket
+          WHERE  ticket = '%s'
+	  AND	 thread_id = 0
+        </sqlquery>
+      </queries>
+    </keys>
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="registry" code="rg">
+    <description>
+      GSOC EU INTERNAL
+      
+      Reference to the registry (reg-id) to which this object belongs
+      See also "reg-id" object. Must be a valid registry-id.
+
+      In the case of inetnum objects please only use registry fields
+      for objects of the type "ALLOCATED".
+    </description>
+
+    <syntax>free-form</syntax>
+
+    <representation> 
+    <sqltable name="reg_ref">
+      <insert qtype="ud_aux__">
+        INSERT reg_ref
+        SELECT %d, %ld, reg_id.object_id, %d
+        FROM reg_id
+        WHERE reg_id.reg_id='%s'
+      </insert>
+      <update qtype="ud_ax_rg">
+        UPDATE reg_ref
+        SET thread_id=%d
+        WHERE object_id=%ld
+        AND   reg_id=%ld
+      </update>
+    </sqltable>
+    </representation>
+
+    <keys searchable="inverse">
+      <foreign value="ri"/>
+
+      <queries>
+        <sqlquery keytype="wk_regid" class="ANY">
+          SELECT i.object_id
+          FROM   reg_id, reg_ref i
+          WHERE  reg_id.object_id = i.reg_id
+          AND    reg_id.reg_id  = '%s'
+          AND    i.thread_id = 0
+        </sqlquery>
+      </queries>
+    </keys>
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="location" code="pf">
+    <description>
+      GSOC EU INTERNAL
+      
+      Reference to the facility to which this range is allocated.
+      See also "facility" object.
+    </description>
+  
+    <syntax>free-form</syntax>
+
+    <representation> 
+    <sqltable name="pop_ref">
+      <insert qtype="ud_aux__">
+        INSERT pop_ref
+        SELECT %d, %ld, pop.object_id, %d
+        FROM pop
+        WHERE pop.pop='%s'
+      </insert>
+      <update qtype="ud_ax_pp">
+        UPDATE pop_ref
+        SET thread_id=%d
+        WHERE object_id=%ld
+        AND   pop_id=%ld
+      </update>
+    </sqltable>
+    </representation>
+
+    <keys searchable="inverse">
+      <foreign value="pp"/>
+
+      <queries>
+        <sqlquery keytype="wk_pop" class="ANY">
+          SELECT i.object_id
+          FROM   pop, pop_ref i
+          WHERE  pop.object_id = i.pop_id
+          AND    pop.pop  = '%s'
+          AND    i.thread_id = 0
+        </sqlquery>
+      </queries>
+    </keys>
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="formurl" code="fu">
+    <description>
+      GSOC EU INTERNAL
+
+      Location of an completed RIPE-141 or RIPE-209 formular
+    </description>
+  
+    <syntax>free-form</syntax>
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="created" code="cr">
+    <description>
+      GSOC EU INTERNAL
+
+      The date when the assignment was approved
+    </description>
+  
+    <syntax>free-form</syntax>
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="size" code="sz">
+
+    <description>
+      GSOC EU INTERNAL
+
+      Size of an registry allocation/assignemt approval.
+    </description>
+  
+    <syntax>free-form</syntax>
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="preference" code="pr">
+    <description>
+      GSOC EU INTERNAL
+      
+      Sets an preference for automatic or manual assignment into
+      a particular allocation. Example: a preference of 0 would
+      mean that no automatic-assignment is possible.
+    </description>
+
+    <syntax>free-form</syntax>
+
+  </ripe_attribute>
+
+  <ripe_attribute name="purpose" code="pu">
+    <description>
+      GSOC EU INTERNAL
+      
+      Details of the purpose the block has been allocated for
+
+      See also "facility" object.
+    </description>
+
+    <syntax>free-form</syntax>
+
+    <representation>
+    <sqltable name="purpose"> 
+      <insert qtype="ud_main_"> 
+        INSERT purpose
+        SET thread_id=%d, object_id=%ld, purpose='%s'
+      </insert> 
+      <update qtype="ud_main_"></update>
+      <select qtype="ud_main_"> 
+        purpose='%s' AND 
+      </select> 
+    </sqltable> 
+    </representation>
+ 
+    <keys searchable="lookup">
+      <primary/>
+      <queries>
+        <sqlquery keytype="wk_purpose" > 
+          SELECT object_id
+          FROM   purpose
+          WHERE  purpose = '%s'
+          AND    thread_id = 0 
+        </sqlquery>
+      </queries>
+    </keys>
+  </ripe_attribute>
+
+
+  <ripe_attribute name="range" code="ra">
+    <description>
+   EU GSOC Internal
+
+   Specifies a range of IPv4 that inetnum object presents. The
+   ending address should be greater than the starting one.
+    </description>
+    <syntax>inetnum</syntax>
+
+    <representation>
+    <sqltable name="">
+      <insert qtype="ud_ma_in">
+        INSERT range
+        SET thread_id=%d, object_id=%ld, begin_in=%u, end_in=%u
+      </insert>
+      <update qtype="ud_main_"></update>
+      <select qtype="ud_ma_in">
+        begin_in=%u AND end_in=%u AND
+      </select>
+    </sqltable>
+       <radixtrees family="RX_FAM_IN">
+             <IP_V4>
+                SELECT  object_id,begin_in,end_in
+                FROM    range
+                WHERE   thread_id = 0
+             </IP_V4>
+        </radixtrees>
+    </representation>
+
+    <keys searchable="lookup">
+      <primary/>
+      <queries>
+        <radixquery keytype="wk_iprange"   space="IP_V4" />
+        <radixquery keytype="wk_ipprefix"  space="IP_V4" />
+        <radixquery keytype="wk_ipaddress" space="IP_V4" />
+      </queries>
+    </keys>
+  </ripe_attribute>
+
+
+  <ripe_attribute name="usedfor" code="uf">
+    <description>
+      GSOC EU INTERNAL
+    
+      Reference to a "purpose" (object). 
+      See also "purpose" object
+    </description>
+ 
+    <syntax>free-form</syntax>
+
+    <representation>
+    <sqltable name="purp_ref">
+      <insert qtype="ud_aux__">
+        INSERT purp_ref
+        SELECT %d, %ld, purpose.object_id, %d
+        FROM purpose
+        WHERE purpose.purpose='%s'
+      </insert>
+      <update qtype="ud_ax_pu">
+        UPDATE purp_ref
+        SET thread_id=%d
+        WHERE object_id=%ld
+        AND   purp_id=%ld
+      </update>
+    </sqltable>
+    </representation>
+ 
+    <keys searchable="inverse">
+      <foreign value="pu"/>
+ 
+      <queries>
+        <sqlquery keytype="wk_purpose" class="pu">
+          SELECT i.object_id
+          FROM   purpose, purp_ref i
+          WHERE  purpose.object_id = i.purp_id
+          AND    purpose.purpose  = '%s'
+          AND    i.thread_id = 0
+        </sqlquery>
+      </queries>
+    </keys>
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="region" code="rn">
+    <description>
+      GSOC EU INTERNAL
+      
+      Region Identifier. Not fully defined yet.
+      Inserted by request of the US Team.
+    </description>
+
+    <syntax>free-form</syntax>
+
+  </ripe_attribute>
+
+
+  <ripe_attribute name="comment" code="lc">
+    <description>
+      GSOC EU INTERNAL
+
+      Private Comment
+      This comment lines will not get exported into the RIPE
+      database and are therefore of privat nature.
+    </description>
+
+    <syntax>free-form</syntax>
+
+  </ripe_attribute>
+
+  
+  <ripe_attribute name="assigned" code="ae">
+    <description>
+      GSOC EU INTERNAL
+
+      Assign Date
+      The Date the assignemnt had been made.
+    </description>
+
+    <syntax>adate</syntax>
+  </ripe_attribute>
+
 </ripe_attributes>
Index: defs/classes.dtd
diff -Nau defs/classes.dtd.orig defs/classes.dtd
--- defs/classes.dtd.orig	2001-05-16 09:44:00.000000000 +0200
+++ defs/classes.dtd	2004-03-10 16:52:58.000000000 +0100
@@ -31,6 +31,7 @@
   ad? |
   ae? |
   ag? |
+  af? |
   ab? |
   ah? |
   ai? |
@@ -43,6 +44,7 @@
   at? |
   au? |
   av? |
+  ax? |
   ay? |
   az? |
   bi? |
@@ -51,6 +53,7 @@
   cm? |
   cn? |
   co? |
+  cr? |
   ct? |
   cy? |
   da? |
@@ -70,6 +73,7 @@
   fi? |
   fp? |
   fs? |
+  fu? |
   fx? |
   gd? |
   ho? |
@@ -106,23 +110,32 @@
   ph? |
   pl? |
   pn? |
+  pp? |
+  pr? |
   ps? |
+  pu? |
   rb? |
   rf? |
+  ri? |
   rm? |
   ro? |
   rp? |
+  rr? |
   rs? |
   rt? |
   rz? |
   sd? |
   so? |
   st? |
+  sz? |
   tb? |
   td? |
   tc? |
+  tk? |
   tx? |
+  uf? |
   wd? |
+  ww? |
   zc?
 ' >
 
@@ -160,6 +173,7 @@
 <!ELEMENT ae EMPTY><!ATTLIST ae %Code; "ae" %Settings;>
 <!ELEMENT ag EMPTY><!ATTLIST ag %Code; "ag" %Settings;>
 <!ELEMENT ab EMPTY><!ATTLIST ab %Code; "ab" %Settings;>
+<!ELEMENT af EMPTY><!ATTLIST af %Code; "af" %Settings;>
 <!ELEMENT ah EMPTY><!ATTLIST ah %Code; "ah" %Settings;>
 <!ELEMENT ai EMPTY><!ATTLIST ai %Code; "ai" %Settings;>
 <!ELEMENT ak EMPTY><!ATTLIST ak %Code; "ak" %Settings;>
@@ -171,6 +185,7 @@
 <!ELEMENT at EMPTY><!ATTLIST at %Code; "at" %Settings;>
 <!ELEMENT au EMPTY><!ATTLIST au %Code; "au" %Settings;>
 <!ELEMENT av EMPTY><!ATTLIST av %Code; "av" %Settings;>
+<!ELEMENT ax EMPTY><!ATTLIST ax %Code; "ax" %Settings;>
 <!ELEMENT ay EMPTY><!ATTLIST ay %Code; "ay" %Settings;>
 <!ELEMENT az EMPTY><!ATTLIST az %Code; "az" %Settings;>
 <!ELEMENT bi EMPTY><!ATTLIST bi %Code; "bi" %Settings;>
@@ -179,6 +194,7 @@
 <!ELEMENT cm EMPTY><!ATTLIST cm %Code; "cm" %Settings;>
 <!ELEMENT cn EMPTY><!ATTLIST cn %Code; "cn" %Settings;>
 <!ELEMENT co EMPTY><!ATTLIST co %Code; "co" %Settings;>
+<!ELEMENT cr EMPTY><!ATTLIST cr %Code; "cr" %Settings;>
 <!ELEMENT ct EMPTY><!ATTLIST ct %Code; "ct" %Settings;>
 <!ELEMENT cy EMPTY><!ATTLIST cy %Code; "cy" %Settings;>
 <!ELEMENT da EMPTY><!ATTLIST da %Code; "da" %Settings;>
@@ -198,6 +214,7 @@
 <!ELEMENT fi EMPTY><!ATTLIST fi %Code; "fi" %Settings;>
 <!ELEMENT fp EMPTY><!ATTLIST fp %Code; "fp" %FixedGen;>
 <!ELEMENT fs EMPTY><!ATTLIST fs %Code; "fs" %Settings;>
+<!ELEMENT fu EMPTY><!ATTLIST fu %Code; "fu" %Settings;>
 <!ELEMENT fx EMPTY><!ATTLIST fx %Code; "fx" %Settings;>
 <!ELEMENT gd EMPTY><!ATTLIST gd %Code; "gd" %Settings;>
 <!ELEMENT ho EMPTY><!ATTLIST ho %Code; "ho" %Settings;>
@@ -233,22 +250,31 @@
 <!ELEMENT ph EMPTY><!ATTLIST ph %Code; "ph" %Settings;>
 <!ELEMENT pl EMPTY><!ATTLIST pl %Code; "pl" %Settings;>
 <!ELEMENT pn EMPTY><!ATTLIST pn %Code; "pn" %Settings;>
+<!ELEMENT pp EMPTY><!ATTLIST pp %Code; "pp" %Settings;>
+<!ELEMENT pr EMPTY><!ATTLIST pr %Code; "pr" %Settings;>
 <!ELEMENT ps EMPTY><!ATTLIST ps %Code; "ps" %Settings;>
+<!ELEMENT pu EMPTY><!ATTLIST pu %Code; "pu" %Settings;>
 <!ELEMENT rb EMPTY><!ATTLIST rb %Code; "rb" %Settings;>
 <!ELEMENT rf EMPTY><!ATTLIST rf %Code; "rf" %Settings;>
+<!ELEMENT ri EMPTY><!ATTLIST ri %Code; "ri" %Settings;>
 <!ELEMENT rm EMPTY><!ATTLIST rm %Code; "rm" %Settings;>
 <!ELEMENT ro EMPTY><!ATTLIST ro %Code; "ro" %Settings;>
 <!ELEMENT rp EMPTY><!ATTLIST rp %Code; "rp" %Settings;>
+<!ELEMENT rr EMPTY><!ATTLIST rr %Code; "rr" %Settings;>
 <!ELEMENT rs EMPTY><!ATTLIST rs %Code; "rs" %Settings;>
 <!ELEMENT rt EMPTY><!ATTLIST rt %Code; "rt" %Settings;>
 <!ELEMENT rz EMPTY><!ATTLIST rz %Code; "rz" %Settings;>
 <!ELEMENT sd EMPTY><!ATTLIST sd %Code; "sd" %Settings;>
-<!ELEMENT st EMPTY><!ATTLIST st %Code; "st" %Settings;>
+<!ELEMENT st EMPTY><!ATTLIST st %Code; "st" %FixedGen;>
+<!ELEMENT sz EMPTY><!ATTLIST sz %Code; "sz" %Settings;>
 <!ELEMENT tb EMPTY><!ATTLIST tb %Code; "tb" %Settings;>
 <!ELEMENT td EMPTY><!ATTLIST td %Code; "td" %Settings;>
 <!ELEMENT tc EMPTY><!ATTLIST tc %Code; "tc" %Settings;>
+<!ELEMENT tk EMPTY><!ATTLIST tk %Code; "tk" %Settings;>
 <!ELEMENT tx EMPTY><!ATTLIST tx %Code; "tx" %Settings;>
+<!ELEMENT uf EMPTY><!ATTLIST uf %Code; "uf" %Settings;>
 <!ELEMENT wd EMPTY><!ATTLIST wd %Code; "wd" %Settings;>
+<!ELEMENT ww EMPTY><!ATTLIST ww %Code; "ww" %Settings;>
 <!ELEMENT zc EMPTY><!ATTLIST zc %Code; "zc" %Settings;>
 
 <!-- common attributes -->
Index: defs/classes.xml
diff -Nau defs/classes.xml.orig defs/classes.xml
--- defs/classes.xml.orig	2003-08-05 16:24:11.000000000 +0200
+++ defs/classes.xml	2004-03-10 16:52:58.000000000 +0100
@@ -25,6 +25,7 @@
       <mnt-by      choice="optional"  number="multiple" />
       <mnt-lower   choice="optional"  number="multiple" />
       <refer       choice="optional"  number="single"   />
+      <comment     choice="optional"  number="multiple" />
       <changed     choice="mandatory" number="multiple" />
       <source      choice="mandatory" number="single"   />
       <delete      choice="optional"  number="single"   pseudo="yes"/>
@@ -41,7 +42,9 @@
     <attributes>
       <inetnum     choice="mandatory" number="single"   />
       <netname     choice="mandatory" number="single"   />
+      <registry    choice="optional"  number="single"   />
       <descr       choice="mandatory" number="multiple" />
+      <assigned    choice="optional"  number="single"   />
       <country     choice="mandatory" number="multiple" />
       <admin-c     choice="mandatory" number="multiple" />
       <tech-c      choice="mandatory" number="multiple" />
@@ -53,6 +56,7 @@
       <mnt-lower   choice="optional"  number="multiple" />
       <mnt-routes  choice="optional"  number="multiple" />
       <mnt-irt     choice="optional"  number="multiple" />
+      <comment     choice="optional"  number="multiple" />
       <changed     choice="mandatory" number="multiple" />
       <source      choice="mandatory" number="single"   />
       <delete      choice="optional"  number="single"   pseudo="yes"/>
@@ -132,6 +136,7 @@
       <notify       choice="optional"  number="multiple" />
       <mnt-by       choice="mandatory" number="multiple" />
       <referral-by  choice="mandatory" number="single"   />
+      <comment      choice="optional"  number="multiple" />
       <changed      choice="mandatory" number="multiple" />
       <source       choice="mandatory" number="single"   />
       <delete       choice="optional"  number="single"   pseudo="yes"/>
@@ -157,6 +162,7 @@
       <remarks      choice="optional"  number="multiple" />
       <notify       choice="optional"  number="multiple" />
       <mnt-by       choice="optional"  number="multiple" />
+      <comment      choice="optional"  number="multiple" />
       <changed      choice="mandatory" number="multiple" />
       <source       choice="mandatory" number="single"   />
       <delete       choice="optional"  number="single"   pseudo="yes"/>
@@ -190,6 +196,7 @@
       <remarks      choice="optional"  number="multiple" />
       <notify       choice="optional"  number="multiple" />
       <mnt-by       choice="optional"  number="multiple" />
+      <comment      choice="optional"  number="multiple" />
       <changed      choice="mandatory" number="multiple" />
       <source       choice="mandatory" number="single"   />
       <delete       choice="optional"  number="single"   pseudo="yes"/>
@@ -267,7 +274,7 @@
       <admin-c      choice="mandatory" number="multiple" />
       <tech-c       choice="mandatory" number="multiple" />
       <rev-srv      choice="optional"  number="multiple" />
-      <status-i6    choice="mandatory" number="single"   />
+      <status-i6    choice="generated" number="single"   />
       <remarks      choice="optional"  number="multiple" />
       <notify       choice="optional"  number="multiple" />
       <mnt-by       choice="mandatory" number="multiple" />
@@ -499,5 +506,122 @@
     <dbase_code value="17"/>
   </ripe_class>
 
-</ripe_classes>
 
+<!-- EU CW specific class/object definitions  -->
+
+  <ripe_class name="reg-id" code="ri">
+    <description>
+      GSOC EU INTERNAL
+      Defines an local registry (LIR)
+    </description>
+    <attributes>
+      <reg-id       choice="mandatory" number="single"   />
+      <window       choice="mandatory" number="single"   />
+      <as-num       choice="mandatory" number="multiple" />
+      <descr        choice="mandatory" number="multiple" />
+      <mnt-by       choice="mandatory" number="multiple" />
+      <changed      choice="mandatory" number="multiple" />
+      <source       choice="mandatory" number="single"   />
+      <delete       choice="optional"  number="single"   pseudo="yes"/>
+      <override     choice="optional"  number="single"   pseudo="yes"/>
+    </attributes>
+    <dbase_code value="18"/>
+  </ripe_class>
+
+
+  <ripe_class name="facility" code="pp">
+    <description>
+      GSOC EU INTERNAL
+      Definition of an CW Point of Presence
+    </description>
+    <attributes>
+      <facility     choice="mandatory" number="single"   />
+      <address      choice="mandatory" number="multiple" />
+      <registry     choice="mandatory" number="single"   />
+      <remedyref    choice="optional"  number="single"   />
+      <as-num       choice="mandatory" number="single"   />
+      <remarks      choice="optional"  number="multiple" />
+      <mnt-by       choice="mandatory" number="multiple" />
+      <changed      choice="mandatory" number="multiple" />
+      <source       choice="mandatory" number="single"   />
+      <delete       choice="optional"  number="single"   pseudo="yes"/>
+      <override     choice="optional"  number="single"   pseudo="yes"/>
+    </attributes>
+    <dbase_code value="19"/>
+  </ripe_class>
+
+
+  <ripe_class name="ticket" code="tk">
+    <description>
+      GSOC EU INTERNAL
+      Approval/Ticket Object.
+      Details of the Registry approval of an assignment/allocation
+    </description>
+    <attributes>
+      <ticket       choice="mandatory" number="single"   />
+      <netname      choice="mandatory" number="single"   />
+      <registry     choice="mandatory" number="single"   />
+      <size         choice="mandatory" number="single"   />
+      <descr        choice="optional"  number="multiple" />
+      <created      choice="mandatory" number="single"   />
+      <formurl      choice="optional"  number="single"   />
+      <mnt-by       choice="mandatory" number="multiple" />
+      <changed      choice="mandatory" number="multiple" />
+      <source       choice="mandatory" number="single"   />
+      <delete       choice="optional"  number="single"   pseudo="yes"/>
+      <override     choice="optional"  number="single"   pseudo="yes"/>
+    </attributes>
+    <dbase_code value="20"/>
+  </ripe_class>
+
+
+  <ripe_class name="range" code="ra">
+    <description> 
+      EU GSOC INTERNAL
+       
+      Range Object. High-Level internal allocation of
+      IPV4-Space for a dedicated purpose.  
+    </description> 
+    <attributes> 
+      <range       choice="mandatory" number="single"   />
+      <netname     choice="mandatory" number="single"   />
+      <registry    choice="optional"  number="single"   />
+      <descr       choice="mandatory" number="multiple" />
+      <country     choice="mandatory" number="multiple" />
+      <status-in   choice="mandatory" number="single"   />
+      <remarks     choice="optional"  number="multiple" />
+      <location    choice="optional"  number="single" />
+      <usedfor     choice="optional"  number="single"   />
+      <preference  choice="optional"  number="single"   />
+      <mnt-by      choice="mandatory" number="multiple" />
+      <mnt-lower   choice="optional"  number="multiple" />
+      <notify      choice="optional"  number="multiple" />
+      <changed     choice="mandatory" number="multiple" />
+      <source      choice="mandatory" number="single"   />
+      <delete      choice="optional"  number="single"   pseudo="yes"/>
+      <override    choice="optional"  number="single"   pseudo="yes"/>
+    </attributes>
+    <dbase_code value="21"/>
+  </ripe_class>
+
+<ripe_class name="purpose" code="pu">
+    <description>
+      GSOC EU INTERNAL
+      Purpose Definition.
+    </description>
+    <attributes>
+      <purpose      choice="mandatory" number="single"   />
+      <descr        choice="mandatory" number="multiple" />
+      <address      choice="optional"  number="multiple" />
+      <remedyref    choice="optional"  number="single"   />
+      <remarks      choice="optional"  number="multiple" />
+      <mnt-by       choice="mandatory" number="multiple" />
+      <changed      choice="mandatory" number="multiple" />
+      <source       choice="mandatory" number="single"   />
+      <delete       choice="optional"  number="single"   pseudo="yes"/>
+      <override     choice="optional"  number="single"   pseudo="yes"/>
+    </attributes>
+    <dbase_code value="22"/>
+  </ripe_class>
+
+</ripe_classes>
Index: defs/syntax.xml
diff -Nau defs/syntax.xml.orig defs/syntax.xml
--- defs/syntax.xml.orig	2003-08-05 16:24:11.000000000 +0200
+++ defs/syntax.xml	2004-03-10 16:52:58.000000000 +0100
@@ -875,5 +875,55 @@
        </description>
    </attribute_syntax>
 
+   <attribute_syntax name="regid">
+       <core>
+         <regex>
+	 ^.{6,50}$
+	 </regex>
+       </core>
+       <front_end>
+         <regex>
+	 ^[A-Z]{2}\.[A-Z0-9]{2,30}$
+	 </regex>
+       </front_end>
+       <description>
+        GSOC EU INTERNAL
+        A valid RIPE registry identifier like de.ecrc
+       </description>
+   </attribute_syntax>
+
+   <attribute_syntax name="window">
+       <core>
+         <regex>
+	 ^.{1,3}$
+	 </regex>
+       </core>
+       <front_end>
+         <regex>
+	 ^[0-9]{1,3}$
+	 </regex>
+       </front_end>
+       <description>
+         GSOC EU INTERNAL
+	 Assignement Window size of a particular LIR
+       </description>
+   </attribute_syntax>
+
+   <attribute_syntax name="adate">
+       <core>
+         <regex>
+	 ^.{8,8}$
+	 </regex>
+       </core>
+       <front_end>
+         <regex>
+	 ^[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]$
+	 </regex>
+       </front_end>
+       <description>
+	 Date in DD.MM.YY
+       </description>
+   </attribute_syntax>
+
 </rpsl_syntax>
 
Index: modules/df/defs.c
diff -Nau modules/df/defs.c.orig modules/df/defs.c
--- modules/df/defs.c.orig	2003-07-03 09:55:21.000000000 +0200
+++ modules/df/defs.c	2004-03-10 16:52:58.000000000 +0100
@@ -78,6 +78,11 @@
   "peering-set",
   "rtr-set",
   "irt",
+  "reg-id",
+  "facility",
+  "ticket",
+  "range",
+  "purpose",
   NULL
 }; /* Filter_names */
 
@@ -131,6 +136,11 @@
 "peering_set",
 "rtr_set",
 "irt",
+"reg_id",
+"pop",
+"ticket",
+"range",
+"purpose",
 NULL
 };
 
Index: modules/df/defs.h
diff -Nau modules/df/defs.h.orig modules/df/defs.h
--- modules/df/defs.h.orig	2003-07-03 09:55:21.000000000 +0200
+++ modules/df/defs.h	2003-12-11 02:44:01.340002000 +0100
@@ -92,6 +92,10 @@
   UD_AX_MR,
   UD_AX_MU,
   UD_AX_IT,
+  UD_AX_AX,
+  UD_AX_RG,
+  UD_AX_PP,
+  UD_AX_PU,
   UD_LEAF_,
   UD_LF_IF,
   UD_LF_RF,
Index: modules/ud/ud_comrol.c
diff -Nau modules/ud/ud_comrol.c.orig modules/ud/ud_comrol.c
--- modules/ud/ud_comrol.c.orig	2003-07-03 09:55:49.000000000 +0200
+++ modules/ud/ud_comrol.c	2004-03-10 16:52:58.000000000 +0100
@@ -285,6 +285,10 @@
    case C_IN:
    case C_I6:
    case C_FS:
+   case C_RA:                                      /* Range Object    AV */
+   case C_RI:                                      /* Registry Object AV */
+   case C_PP:                                      /* pop      Object AV */
+   case C_TK:                                      /* ticket   Object AV */
 /*    if((tr->save)){ */
     /* Some special processing for tables with the second attribute */
      /* Update the second field of the table with query like one below */
@@ -298,11 +302,18 @@
                  break;
       /* netname for inetnum and inet6num */           
       case C_IN: 
+      case C_RA:
       case C_I6: attr_type=A_NA;
                  break;
       /* filter for filter-set */           
       case C_FS: attr_type=A_FI;
                  break;
+      case C_RI: attr_type=A_WW;        /* Save reg-window size (AV) */
+                 break;
+      case C_PP: attr_type=A_RR;        /* Save remedyref       (AV) */
+                 break;
+      case C_TK: attr_type=A_NA;        /* Save ticket/netname  (AV) */
+                 break;
       default:
                  LG_log(ud_context, LG_SEVERE, "not valid class type\n");
                  attr_type=A_END;
@@ -600,6 +611,78 @@
        }   
        break;
         
+    case C_RI:
+    
+        /* Check that this reg-id bject is not referenced -AV- */
+        
+       for (i=0; t_iri[i] != NULL; i++) { 
+       /* Calculate number of references */
+        sql_str= get_field_str(tr->sql_connection, "COUNT(*)", t_iri[i], "reg_id", sobject_id, NULL);
+        if(sql_str) {
+         num_rec = atol(sql_str);  UT_free(sql_str);
+         ref_id=tr->object_id;
+         /* Check if it is a self reference  */
+         /* reg-id Object cannot have self references */
+         
+         /* If there are references (and not the only self reference) we cannot delete */ 
+         if(num_rec>0) {
+           g_string_sprintfa(tr->error_script,"E[%d][%ld]:ref integrity: %s\n" ,ERROR_U_OBJ, num_rec, t_iit[i]);
+           tr->succeeded=0; tr->error |= ERROR_U_OBJ;
+         }
+        } else {
+         tr->succeeded=0; tr->error |= ERROR_U_DBS;
+        }
+       }   
+       break;
+        
+    case C_PP:
+    
+        /* Check that this purpose object is not referenced -AV- */
+        
+       for (i=0; t_ipp[i] != NULL; i++) { 
+       /* Calculate number of references */
+        sql_str= get_field_str(tr->sql_connection, "COUNT(*)", t_ipp[i], "pop_id", sobject_id, NULL);
+        if(sql_str) {
+         num_rec = atol(sql_str);  UT_free(sql_str);
+         ref_id=tr->object_id;
+         /* Check if it is a self reference  */
+         /* IRT object cannot have self references */
+         
+         /* If there are references (and not the only self reference) we cannot delete */ 
+         if(num_rec>0) {
+           g_string_sprintfa(tr->error_script,"E[%d][%ld]:ref integrity: %s\n" ,ERROR_U_OBJ, num_rec, t_iit[i]);
+           tr->succeeded=0; tr->error |= ERROR_U_OBJ;
+         }
+        } else {
+         tr->succeeded=0; tr->error |= ERROR_U_DBS;
+        }
+       }   
+       break;
+        
+    case C_PU:
+    
+        /* Check that this purpose object is not referenced -AV- */
+        
+       for (i=0; t_ipu[i] != NULL; i++) { 
+       /* Calculate number of references */
+        sql_str= get_field_str(tr->sql_connection, "COUNT(*)", t_ipu[i], "purp_id", sobject_id, NULL);
+        if(sql_str) {
+         num_rec = atol(sql_str);  UT_free(sql_str);
+         ref_id=tr->object_id;
+         /* Check if it is a self reference  */
+         /* IRT object cannot have self references */
+         
+         /* If there are references (and not the only self reference) we cannot delete */ 
+         if(num_rec>0) {
+           g_string_sprintfa(tr->error_script,"E[%d][%ld]:ref integrity: %s\n" ,ERROR_U_OBJ, num_rec, t_iit[i]);
+           tr->succeeded=0; tr->error |= ERROR_U_OBJ;
+         }
+        } else {
+         tr->succeeded=0; tr->error |= ERROR_U_DBS;
+        }
+       }   
+       break;
+        
     case C_RS:
     case C_AS:
         /* Check that this set object is not referenced */
@@ -820,6 +903,7 @@
     /* Only for these types of objects and only if we have collected data (tr->save != NULL) */
     if( (   (tr->class_type==C_RT) 
 	 || (tr->class_type==C_IN) 
+	 || (tr->class_type==C_RA)  /* AV Range Object */
 	 || (tr->class_type==C_I6)
 	 || (tr->class_type==C_DN))) {
       /* Collect some data for radix tree and NH repository update for deletes*/
Index: modules/ud/ud_comrol.h
diff -Nau modules/ud/ud_comrol.h.orig modules/ud/ud_comrol.h
--- modules/ud/ud_comrol.h.orig	2003-07-03 09:55:49.000000000 +0200
+++ modules/ud/ud_comrol.h	2004-03-10 16:52:58.000000000 +0100
@@ -73,7 +73,7 @@
 		"admin_c","tech_c","rev_srv","notify","mnt_by","mnt_lower","mnt_routes","mnt_irt",NULL}; /*C_I6,*/
 
 char *t_in[]={	"mntner","person_role","names","irt",NULL,NULL,
-		"admin_c","tech_c","rev_srv","notify","mnt_by","mnt_lower","mnt_routes","mnt_irt",NULL}; /*C_IN,*/
+		"admin_c","tech_c","rev_srv","notify","mnt_by","mnt_lower","mnt_routes","mnt_irt","reg_ref",NULL}; /*C_IN,*/
 		
 char *t_ir[]={	"mntner","person_role","names",NULL,NULL,NULL,
 		"ifaddr","admin_c","tech_c","notify","mnt_by",NULL}; /*C_IR,*/
@@ -113,7 +113,22 @@
                 
 char *t_it[]={  "mntner","person_role","names",NULL,NULL,NULL,
                 "admin_c","tech_c","notify","mnt_by","auth","irt_nfy",NULL}; /*C_IS,*/
- 
+
+char *t_ri[]={  "mntner","person_role","names",NULL,NULL,NULL,
+                "mnt_by","as_ref", NULL}; /*C_RI AV */
+
+char *t_pp[]={  "mntner","person_role","names",NULL,NULL,NULL,
+                "mnt_by","as_ref", "reg_ref", "pop_ref", NULL}; /*C_PP AV */
+
+char *t_tk[]={  "mntner","person_role","names",NULL,NULL,NULL,
+                "mnt_by","reg_ref", NULL}; /*C_TK AV */
+
+char *t_ra[]={	"mntner","person_role","names","irt",NULL,NULL,
+		"admin_c","tech_c","rev_srv","notify","mnt_by","mnt_lower","mnt_routes","mnt_irt","reg_ref","pop_ref","purp_ref",NULL}; /*C_RA AV*/
+
+char *t_pu[]={  "mntner","person_role","names",NULL,NULL,NULL,
+                "mnt_by","purp_ref", NULL}; /*C_PU AV */
+
 /* IMPORTANT !!! */
 /* This stuff should be consistent with DF_classnames.def */
 
@@ -136,6 +151,11 @@
 t_ps,
 t_is,
 t_it,
+t_ri,
+t_pp,
+t_tk,
+t_ra,
+t_pu,
 NULL
 };
 
@@ -144,3 +164,7 @@
 char *t_ipn[]={  "admin_c","tech_c","zone_c","cross_nfy","author",NULL}; /*C_PN, C_RO*/
 char *t_imt[]={  "mnt_by","mnt_lower","mnt_routes","cross_mnt","mbrs_by_ref","referral_by",NULL}; /* C_MT */
 char *t_iit[]={  "mnt_irt", NULL}; /* C_IT */
+/* C&W Additions */
+char *t_iri[]={  "reg_ref",NULL};  /* C_PP Registry ID    Object -AV- */
+char *t_ipp[]={  "pop_ref",NULL};  /* C_PP Pop / Location Object -AV- */
+char *t_ipu[]={  "purp_ref",NULL}; /* C_PU Purpose        Object -AV- */
Index: modules/wk/which_keytypes.h
diff -Nau modules/wk/which_keytypes.h.orig modules/wk/which_keytypes.h
--- modules/wk/which_keytypes.h.orig	2003-07-03 09:55:56.000000000 +0200
+++ modules/wk/which_keytypes.h	2003-12-11 02:56:32.820001000 +0100
@@ -54,6 +54,11 @@
   WK_PEERINGSET,     /*+ peering-set name                    +*/
   WK_RTRSET,         /*+ router-set name                     +*/
   WK_IRT,            /*+ irt name                            +*/
+  WK_REGID,          /*+ registry id / reg-id             AV +*/
+  WK_POP,            /*+ pop                              AV +*/
+  WK_TICKET,         /*+ ticket                           AV +*/
+  WK_RANGE,          /*+ range                            AV +*/
+  WK_PURPOSE,        /*+ purpose                          AV +*/
   WK_END
 } WK_Type;
 
@@ -87,6 +92,11 @@
   "peering_set",
   "rtr_set",
   "irt",
+  "reg_id",
+  "pop",
+  "ticket",
+  "ipprefix",
+  "purpose",
   NULL
 }; /* Keytypes[] */
 
Index: include/DF_attribute_aliases.def
diff -Nau include/DF_attribute_aliases.def.orig include/DF_attribute_aliases.def
--- include/DF_attribute_aliases.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_attribute_aliases.def	2004-03-18 13:01:36.460134000 +0100
@@ -162,5 +162,41 @@
   "delete",
   "uo",
   "override",
+  "ri",
+  "reg-id",
+  "ww",
+  "window",
+  "ax",
+  "as-num",
+  "pp",
+  "facility",
+  "rr",
+  "remedyref",
+  "tk",
+  "ticket",
+  "rg",
+  "registry",
+  "pf",
+  "location",
+  "fu",
+  "formurl",
+  "cr",
+  "created",
+  "sz",
+  "size",
+  "pr",
+  "preference",
+  "pu",
+  "purpose",
+  "ra",
+  "range",
+  "uf",
+  "usedfor",
+  "rn",
+  "region",
+  "lc",
+  "comment",
+  "ae",
+  "assigned",
   NULL
 }; /* Attribute_aliases */
Index: include/DF_attribute_aliases_map.def
diff -Nau include/DF_attribute_aliases_map.def.orig include/DF_attribute_aliases_map.def
--- include/DF_attribute_aliases_map.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_attribute_aliases_map.def	2004-03-18 13:01:40.050083000 +0100
@@ -162,5 +162,41 @@
   79,
   80,
   80,
+  81,
+  81,
+  82,
+  82,
+  83,
+  83,
+  84,
+  84,
+  85,
+  85,
+  86,
+  86,
+  87,
+  87,
+  88,
+  88,
+  89,
+  89,
+  90,
+  90,
+  91,
+  91,
+  92,
+  92,
+  93,
+  93,
+  94,
+  94,
+  95,
+  95,
+  96,
+  96,
+  97,
+  97,
+  98,
+  98,
   NULL
 }; /* Attribute_aliases_map */
Index: include/DF_attribute_codes.def
diff -Nau include/DF_attribute_codes.def.orig include/DF_attribute_codes.def
--- include/DF_attribute_codes.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_attribute_codes.def	2004-03-18 13:01:43.280189000 +0100
@@ -80,5 +80,23 @@
   "iy",
   "ud",
   "uo",
+  "ri",
+  "ww",
+  "ax",
+  "pp",
+  "rr",
+  "tk",
+  "rg",
+  "pf",
+  "fu",
+  "cr",
+  "sz",
+  "pr",
+  "pu",
+  "ra",
+  "uf",
+  "rn",
+  "lc",
+  "ae",
   NULL
 }; /* Attribute_codes */
Index: include/DF_attribute_enum.def
diff -Nau include/DF_attribute_enum.def.orig include/DF_attribute_enum.def
--- include/DF_attribute_enum.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_attribute_enum.def	2004-03-18 13:01:45.590103000 +0100
@@ -80,6 +80,24 @@
   A_IY,
   A_UD,
   A_UO,
+  A_RI,
+  A_WW,
+  A_AX,
+  A_PP,
+  A_RR,
+  A_TK,
+  A_RG,
+  A_PF,
+  A_FU,
+  A_CR,
+  A_SZ,
+  A_PR,
+  A_PU,
+  A_RA,
+  A_UF,
+  A_RN,
+  A_LC,
+  A_AE,
   A_END
 } A_Type_t;
 
Index: include/DF_attribute_inv_attr_mask.def
diff -Nau include/DF_attribute_inv_attr_mask.def.orig include/DF_attribute_inv_attr_mask.def
--- include/DF_attribute_inv_attr_mask.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_attribute_inv_attr_mask.def	2004-03-18 13:01:48.250019000 +0100
@@ -1 +1 @@
-#define INV_ATTR_MASK A_AC, A_AH, A_CN, A_MR, A_MB, A_ML, A_MN, A_MU, A_NY, A_OR, A_RB, A_NS, A_RZ, A_SD, A_TC, A_DT, A_ZC, A_LA, A_MO, A_CT, A_MI, A_IY, MA_END
+#define INV_ATTR_MASK A_AC, A_AH, A_CN, A_MR, A_MB, A_ML, A_MN, A_MU, A_NY, A_OR, A_RB, A_NS, A_RZ, A_SD, A_TC, A_DT, A_ZC, A_LA, A_MO, A_CT, A_MI, A_IY, A_AX, A_RG, A_PF, A_UF, MA_END
Index: include/DF_attribute_names.def
diff -Nau include/DF_attribute_names.def.orig include/DF_attribute_names.def
--- include/DF_attribute_names.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_attribute_names.def	2004-03-18 13:01:50.670020000 +0100
@@ -80,5 +80,23 @@
   "irt-nfy",
   "delete",
   "override",
+  "reg-id",
+  "window",
+  "as-num",
+  "facility",
+  "remedyref",
+  "ticket",
+  "registry",
+  "location",
+  "formurl",
+  "created",
+  "size",
+  "preference",
+  "purpose",
+  "range",
+  "usedfor",
+  "region",
+  "comment",
+  "assigned",
   NULL
 }; /* Attribute_names */
Index: include/DF_class_aliases.def
diff -Nau include/DF_class_aliases.def.orig include/DF_class_aliases.def
--- include/DF_class_aliases.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_class_aliases.def	2004-03-18 13:01:52.780085000 +0100
@@ -35,5 +35,15 @@
   "rtr-set",
   "it",
   "irt",
+  "ri",
+  "reg-id",
+  "pp",
+  "facility",
+  "tk",
+  "ticket",
+  "ra",
+  "range",
+  "pu",
+  "purpose",
   NULL
 }; /* Class_aliases */
Index: include/DF_class_aliases_map.def
diff -Nau include/DF_class_aliases_map.def.orig include/DF_class_aliases_map.def
--- include/DF_class_aliases_map.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_class_aliases_map.def	2004-03-18 13:01:55.050097000 +0100
@@ -35,5 +35,15 @@
   16,
   17,
   17,
+  18,
+  18,
+  19,
+  19,
+  20,
+  20,
+  21,
+  21,
+  22,
+  22,
   NULL
 }; /* Class_aliases_map */
Index: include/DF_class_codes.def
diff -Nau include/DF_class_codes.def.orig include/DF_class_codes.def
--- include/DF_class_codes.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_class_codes.def	2004-03-18 13:01:57.430052000 +0100
@@ -17,5 +17,10 @@
   "ps",
   "is",
   "it",
+  "ri",
+  "pp",
+  "tk",
+  "ra",
+  "pu",
   NULL
 }; /* Class_codes */
Index: include/DF_class_dbase_code_map.def
diff -Nau include/DF_class_dbase_code_map.def.orig include/DF_class_dbase_code_map.def
--- include/DF_class_dbase_code_map.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_class_dbase_code_map.def	2004-03-18 13:01:59.460031000 +0100
@@ -17,5 +17,10 @@
   15,
   16,
   17,
+  18,
+  19,
+  20,
+  21,
+  22,
   NULL
 }; /* Class_dbase_code_map */
Index: include/DF_class_enum.def
diff -Nau include/DF_class_enum.def.orig include/DF_class_enum.def
--- include/DF_class_enum.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_class_enum.def	2004-03-18 13:02:01.620033000 +0100
@@ -18,6 +18,11 @@
   C_PS,
   C_IS,
   C_IT,
+  C_RI,
+  C_PP,
+  C_TK,
+  C_RA,
+  C_PU,
   C_END
 } C_Type_t;
 
Index: include/DF_class_mask.def
diff -Nau include/DF_class_mask.def.orig include/DF_class_mask.def
--- include/DF_class_mask.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_class_mask.def	2004-03-18 13:02:04.140028000 +0100
@@ -1 +1 @@
-#define CLASS_MASK C_AK, C_AS, C_AN, C_DN, C_IR, C_I6, C_IN, C_KC, C_LI, C_MT, C_PN, C_RO, C_RT, C_RS, C_FS, C_PS, C_IS, C_IT, MA_END
+#define CLASS_MASK C_AK, C_AS, C_AN, C_DN, C_IR, C_I6, C_IN, C_KC, C_LI, C_MT, C_PN, C_RO, C_RT, C_RS, C_FS, C_PS, C_IS, C_IT, C_RI, C_PP, C_TK, C_RA, C_PU, MA_END
Index: include/DF_class_names.def
diff -Nau include/DF_class_names.def.orig include/DF_class_names.def
--- include/DF_class_names.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_class_names.def	2004-03-18 13:02:06.320045000 +0100
@@ -17,5 +17,10 @@
   "peering-set",
   "rtr-set",
   "irt",
+  "reg-id",
+  "facility",
+  "ticket",
+  "range",
+  "purpose",
   NULL
 }; /* Class_names */
Index: include/DF_class_templates.def
diff -Nau include/DF_class_templates.def.orig include/DF_class_templates.def
--- include/DF_class_templates.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_class_templates.def	2004-03-18 13:02:08.450028000 +0100
@@ -54,6 +54,7 @@
 "mnt-by:        [optional]   [multiple]   [inverse key]\n"
 "mnt-lower:     [optional]   [multiple]   [inverse key]\n"
 "refer:         [optional]   [single]     [ ]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 ,
@@ -79,7 +80,7 @@
 "admin-c:       [mandatory]  [multiple]   [inverse key]\n"
 "tech-c:        [mandatory]  [multiple]   [inverse key]\n"
 "rev-srv:       [optional]   [multiple]   [inverse key]\n"
-"status:        [mandatory]  [single]     [ ]\n"
+"status:        [generated]  [single]     [ ]\n"
 "remarks:       [optional]   [multiple]   [ ]\n"
 "notify:        [optional]   [multiple]   [inverse key]\n"
 "mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
@@ -90,7 +91,9 @@
 ,
 "inetnum:       [mandatory]  [single]     [primary/look-up key]\n"
 "netname:       [mandatory]  [single]     [lookup key]\n"
+"registry:      [optional]   [single]     [inverse key]\n"
 "descr:         [mandatory]  [multiple]   [ ]\n"
+"assigned:      [optional]   [single]     [ ]\n"
 "country:       [mandatory]  [multiple]   [ ]\n"
 "admin-c:       [mandatory]  [multiple]   [inverse key]\n"
 "tech-c:        [mandatory]  [multiple]   [inverse key]\n"
@@ -102,6 +105,7 @@
 "mnt-lower:     [optional]   [multiple]   [inverse key]\n"
 "mnt-routes:    [optional]   [multiple]   [inverse key]\n"
 "mnt-irt:       [optional]   [multiple]   [inverse key]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 ,
@@ -138,6 +142,7 @@
 "notify:        [optional]   [multiple]   [inverse key]\n"
 "mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
 "referral-by:   [mandatory]  [single]     [inverse key]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 ,
@@ -150,6 +155,7 @@
 "remarks:       [optional]   [multiple]   [ ]\n"
 "notify:        [optional]   [multiple]   [inverse key]\n"
 "mnt-by:        [optional]   [multiple]   [inverse key]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 ,
@@ -165,6 +171,7 @@
 "remarks:       [optional]   [multiple]   [ ]\n"
 "notify:        [optional]   [multiple]   [inverse key]\n"
 "mnt-by:        [optional]   [multiple]   [inverse key]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 ,
@@ -251,5 +258,59 @@
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 ,
+"reg-id:        [mandatory]  [single]     [primary/look-up key]\n"
+"window:        [mandatory]  [single]     [ ]\n"
+"as-num:        [mandatory]  [multiple]   [inverse key]\n"
+"descr:         [mandatory]  [multiple]   [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+,
+"facility:      [mandatory]  [single]     [primary/look-up key]\n"
+"address:       [mandatory]  [multiple]   [ ]\n"
+"registry:      [mandatory]  [single]     [inverse key]\n"
+"remedyref:     [optional]   [single]     [ ]\n"
+"as-num:        [mandatory]  [single]     [inverse key]\n"
+"remarks:       [optional]   [multiple]   [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+,
+"ticket:        [mandatory]  [single]     [primary/look-up key]\n"
+"netname:       [mandatory]  [single]     [lookup key]\n"
+"registry:      [mandatory]  [single]     [inverse key]\n"
+"size:          [mandatory]  [single]     [ ]\n"
+"descr:         [optional]   [multiple]   [ ]\n"
+"created:       [mandatory]  [single]     [ ]\n"
+"formurl:       [optional]   [single]     [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+,
+"range:         [mandatory]  [single]     [primary/look-up key]\n"
+"netname:       [mandatory]  [single]     [lookup key]\n"
+"registry:      [optional]   [single]     [inverse key]\n"
+"descr:         [mandatory]  [multiple]   [ ]\n"
+"country:       [mandatory]  [multiple]   [ ]\n"
+"status:        [mandatory]  [single]     [ ]\n"
+"remarks:       [optional]   [multiple]   [ ]\n"
+"location:      [optional]   [single]     [inverse key]\n"
+"usedfor:       [optional]   [single]     [inverse key]\n"
+"preference:    [optional]   [single]     [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"mnt-lower:     [optional]   [multiple]   [inverse key]\n"
+"notify:        [optional]   [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+,
+"purpose:       [mandatory]  [single]     [primary/look-up key]\n"
+"descr:         [mandatory]  [multiple]   [ ]\n"
+"address:       [optional]   [multiple]   [ ]\n"
+"remedyref:     [optional]   [single]     [ ]\n"
+"remarks:       [optional]   [multiple]   [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+,
 NULL
 }; /* Templates */
Index: include/DF_class_templates_v.def
diff -Nau include/DF_class_templates_v.def.orig include/DF_class_templates_v.def
--- include/DF_class_templates_v.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_class_templates_v.def	2004-03-18 13:02:11.530013000 +0100
@@ -574,6 +574,7 @@
 "mnt-by:        [optional]   [multiple]   [inverse key]\n"
 "mnt-lower:     [optional]   [multiple]   [inverse key]\n"
 "refer:         [optional]   [single]     [ ]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 "\n"
@@ -733,6 +734,16 @@
 "     which queries are accepted by the referred host.  If\n"
 "     <port> is omitted, the default number of 43 is used.\n"
 "       ""\n"
+"comment\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Private Comment\n"
+"      This comment lines will not get exported into the RIPE\n"
+"      database and are therefore of privat nature.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
 "changed\n"
 "\n"
 "   Specifies who submitted the update, and when the object was\n"
@@ -928,7 +939,7 @@
 "admin-c:       [mandatory]  [multiple]   [inverse key]\n"
 "tech-c:        [mandatory]  [multiple]   [inverse key]\n"
 "rev-srv:       [optional]   [multiple]   [inverse key]\n"
-"status:        [mandatory]  [single]     [ ]\n"
+"status:        [generated]  [single]     [ ]\n"
 "remarks:       [optional]   [multiple]   [ ]\n"
 "notify:        [optional]   [multiple]   [inverse key]\n"
 "mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
@@ -1110,7 +1121,9 @@
 "    ""\n"
 "inetnum:       [mandatory]  [single]     [primary/look-up key]\n"
 "netname:       [mandatory]  [single]     [lookup key]\n"
+"registry:      [optional]   [single]     [inverse key]\n"
 "descr:         [mandatory]  [multiple]   [ ]\n"
+"assigned:      [optional]   [single]     [ ]\n"
 "country:       [mandatory]  [multiple]   [ ]\n"
 "admin-c:       [mandatory]  [multiple]   [inverse key]\n"
 "tech-c:        [mandatory]  [multiple]   [inverse key]\n"
@@ -1122,6 +1135,7 @@
 "mnt-lower:     [optional]   [multiple]   [inverse key]\n"
 "mnt-routes:    [optional]   [multiple]   [inverse key]\n"
 "mnt-irt:       [optional]   [multiple]   [inverse key]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 "\n"
@@ -1143,12 +1157,33 @@
 "     must be a letter, and the last character of a name must be a\n"
 "     letter or a digit.\n"
 "       ""\n"
+"registry\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      \n"
+"      Reference to the registry (reg-id) to which this object belongs\n"
+"      See also \"reg-id\" object. Must be a valid registry-id.\n"
+"\n"
+"      In the case of inetnum objects please only use registry fields\n"
+"      for objects of the type \"ALLOCATED\".\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
 "descr\n"
 "\n"
 "   A short decription related to the object.\n"
 "    ""\n"
 "     A sequence of ASCII characters.\n"
 "       ""\n"
+"assigned\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Assign Date\n"
+"      The Date the assignemnt had been made.\n"
+"    ""\n"
+"	 Date in DD.MM.YY\n"
+"       ""\n"
 "country\n"
 "\n"
 "   Identifies the country.\n"
@@ -1290,6 +1325,16 @@
 "     with \"irt-\", and the last character of a name must be a\n"
 "     letter or a digit.\n"
 "       ""\n"
+"comment\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Private Comment\n"
+"      This comment lines will not get exported into the RIPE\n"
+"      database and are therefore of privat nature.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
 "changed\n"
 "\n"
 "   Specifies who submitted the update, and when the object was\n"
@@ -1563,6 +1608,7 @@
 "notify:        [optional]   [multiple]   [inverse key]\n"
 "mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
 "referral-by:   [mandatory]  [single]     [inverse key]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 "\n"
@@ -1741,6 +1787,16 @@
 "     with \"prng-\" are reserved for peering set names. Names\n"
 "     starting with \"irt-\" are reserved for irt names.\n"
 "       ""\n"
+"comment\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Private Comment\n"
+"      This comment lines will not get exported into the RIPE\n"
+"      database and are therefore of privat nature.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
 "changed\n"
 "\n"
 "   Specifies who submitted the update, and when the object was\n"
@@ -1776,6 +1832,7 @@
 "remarks:       [optional]   [multiple]   [ ]\n"
 "notify:        [optional]   [multiple]   [inverse key]\n"
 "mnt-by:        [optional]   [multiple]   [inverse key]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 "\n"
@@ -1882,6 +1939,16 @@
 "     with \"prng-\" are reserved for peering set names. Names\n"
 "     starting with \"irt-\" are reserved for irt names.\n"
 "       ""\n"
+"comment\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Private Comment\n"
+"      This comment lines will not get exported into the RIPE\n"
+"      database and are therefore of privat nature.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
 "changed\n"
 "\n"
 "   Specifies who submitted the update, and when the object was\n"
@@ -1925,6 +1992,7 @@
 "remarks:       [optional]   [multiple]   [ ]\n"
 "notify:        [optional]   [multiple]   [inverse key]\n"
 "mnt-by:        [optional]   [multiple]   [inverse key]\n"
+"comment:       [optional]   [multiple]   [ ]\n"
 "changed:       [mandatory]  [multiple]   [ ]\n"
 "source:        [mandatory]  [single]     [ ]\n"
 "\n"
@@ -2052,6 +2120,16 @@
 "     with \"prng-\" are reserved for peering set names. Names\n"
 "     starting with \"irt-\" are reserved for irt names.\n"
 "       ""\n"
+"comment\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Private Comment\n"
+"      This comment lines will not get exported into the RIPE\n"
+"      database and are therefore of privat nature.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
 "changed\n"
 "\n"
 "   Specifies who submitted the update, and when the object was\n"
@@ -3106,5 +3184,622 @@
 "     registry name must be a letter or a digit.\n"
 "       ""\n"
 ,
+"The reg-id class:\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      Defines an local registry (LIR)\n"
+"    ""\n"
+"reg-id:        [mandatory]  [single]     [primary/look-up key]\n"
+"window:        [mandatory]  [single]     [ ]\n"
+"as-num:        [mandatory]  [multiple]   [inverse key]\n"
+"descr:         [mandatory]  [multiple]   [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+"\n"
+"The content of the attributes of the reg-id class are defined below:\n"
+"\n"
+"reg-id\n"
+"\n"
+"       GSOC EU INTERNAL\n"
+"       RIPE Registry ID \n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"window\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      Assignement Window size of a particular LIR\n"
+"    ""\n"
+"         GSOC EU INTERNAL\n"
+"	 Assignement Window size of a particular LIR\n"
+"       ""\n"
+"as-num\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      ASN which is used by a registry or a pop\n"
+"    ""\n"
+"     An \"AS\" string followed by an integer in the range from 1 to\n"
+"     65534\n"
+"       ""\n"
+"descr\n"
+"\n"
+"   A short decription related to the object.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"mnt-by\n"
+"\n"
+"   Specifies the identifier of a registered mntner object used\n"
+"   for authorisation of operations performed with the object\n"
+"   that contains this attribute.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a name\n"
+"     must be a letter, and the last character of a name must be a\n"
+"     letter or a digit.  The following words are reserved by\n"
+"     RPSL, and they can not be used as names:\n"
+"   \n"
+"      any as-any rs-any peeras and or not atomic from to at\n"
+"      action accept announce except refine networks into inbound\n"
+"      outbound\n"
+"   \n"
+"     Names starting with certain prefixes are reserved for\n"
+"     certain object types.  Names starting with \"as-\" are\n"
+"     reserved for as set names.  Names starting with \"rs-\" are\n"
+"     reserved for route set names.  Names starting with \"rtrs-\"\n"
+"     are reserved for router set names. Names starting with\n"
+"     \"fltr-\" are reserved for filter set names. Names starting\n"
+"     with \"prng-\" are reserved for peering set names. Names\n"
+"     starting with \"irt-\" are reserved for irt names.\n"
+"       ""\n"
+"changed\n"
+"\n"
+"   Specifies who submitted the update, and when the object was\n"
+"   updated. \n"
+"    ""\n"
+"     An e-mail address as defined in RFC 2822, followed by a date\n"
+"     in the format YYYYMMDD.\n"
+"       ""\n"
+"source\n"
+"\n"
+"   Specifies the registry where the object is registered.  Should\n"
+"   be \"RIPE\" for the RIPE Database.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a \n"
+"     registry name must be a letter, and the last character of a\n"
+"     registry name must be a letter or a digit.\n"
+"       ""\n"
+,
+"The facility class:\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      Definition of an CW Point of Presence\n"
+"    ""\n"
+"facility:      [mandatory]  [single]     [primary/look-up key]\n"
+"address:       [mandatory]  [multiple]   [ ]\n"
+"registry:      [mandatory]  [single]     [inverse key]\n"
+"remedyref:     [optional]   [single]     [ ]\n"
+"as-num:        [mandatory]  [single]     [inverse key]\n"
+"remarks:       [optional]   [multiple]   [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+"\n"
+"The content of the attributes of the facility class are defined below:\n"
+"\n"
+"facility\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      \n"
+"      Contains Details for which location, facility or region a certain\n"
+"      ip-range has been reserved for.\n"
+"      \n"
+"      See also \"purpose\" Object.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"address\n"
+"\n"
+"      Full postal address of a contact.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"registry\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      \n"
+"      Reference to the registry (reg-id) to which this object belongs\n"
+"      See also \"reg-id\" object. Must be a valid registry-id.\n"
+"\n"
+"      In the case of inetnum objects please only use registry fields\n"
+"      for objects of the type \"ALLOCATED\".\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"remedyref\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Remedey Reference Field. May contain references to the local\n"
+"      ticket-management system in the future.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"as-num\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      ASN which is used by a registry or a pop\n"
+"    ""\n"
+"     An \"AS\" string followed by an integer in the range from 1 to\n"
+"     65534\n"
+"       ""\n"
+"remarks\n"
+"\n"
+"   Contains remarks.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"mnt-by\n"
+"\n"
+"   Specifies the identifier of a registered mntner object used\n"
+"   for authorisation of operations performed with the object\n"
+"   that contains this attribute.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a name\n"
+"     must be a letter, and the last character of a name must be a\n"
+"     letter or a digit.  The following words are reserved by\n"
+"     RPSL, and they can not be used as names:\n"
+"   \n"
+"      any as-any rs-any peeras and or not atomic from to at\n"
+"      action accept announce except refine networks into inbound\n"
+"      outbound\n"
+"   \n"
+"     Names starting with certain prefixes are reserved for\n"
+"     certain object types.  Names starting with \"as-\" are\n"
+"     reserved for as set names.  Names starting with \"rs-\" are\n"
+"     reserved for route set names.  Names starting with \"rtrs-\"\n"
+"     are reserved for router set names. Names starting with\n"
+"     \"fltr-\" are reserved for filter set names. Names starting\n"
+"     with \"prng-\" are reserved for peering set names. Names\n"
+"     starting with \"irt-\" are reserved for irt names.\n"
+"       ""\n"
+"changed\n"
+"\n"
+"   Specifies who submitted the update, and when the object was\n"
+"   updated. \n"
+"    ""\n"
+"     An e-mail address as defined in RFC 2822, followed by a date\n"
+"     in the format YYYYMMDD.\n"
+"       ""\n"
+"source\n"
+"\n"
+"   Specifies the registry where the object is registered.  Should\n"
+"   be \"RIPE\" for the RIPE Database.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a \n"
+"     registry name must be a letter, and the last character of a\n"
+"     registry name must be a letter or a digit.\n"
+"       ""\n"
+,
+"The ticket class:\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      Approval/Ticket Object.\n"
+"      Details of the Registry approval of an assignment/allocation\n"
+"    ""\n"
+"ticket:        [mandatory]  [single]     [primary/look-up key]\n"
+"netname:       [mandatory]  [single]     [lookup key]\n"
+"registry:      [mandatory]  [single]     [inverse key]\n"
+"size:          [mandatory]  [single]     [ ]\n"
+"descr:         [optional]   [multiple]   [ ]\n"
+"created:       [mandatory]  [single]     [ ]\n"
+"formurl:       [optional]   [single]     [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+"\n"
+"The content of the attributes of the ticket class are defined below:\n"
+"\n"
+"ticket\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Registry Ticket-Number of the allocation/assignment confirmation.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"netname\n"
+"\n"
+"   The name of a range of IP address space.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a name\n"
+"     must be a letter, and the last character of a name must be a\n"
+"     letter or a digit.\n"
+"       ""\n"
+"registry\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      \n"
+"      Reference to the registry (reg-id) to which this object belongs\n"
+"      See also \"reg-id\" object. Must be a valid registry-id.\n"
+"\n"
+"      In the case of inetnum objects please only use registry fields\n"
+"      for objects of the type \"ALLOCATED\".\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"size\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Size of an registry allocation/assignemt approval.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"descr\n"
+"\n"
+"   A short decription related to the object.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"created\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      The date when the assignment was approved\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"formurl\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Location of an completed RIPE-141 or RIPE-209 formular\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"mnt-by\n"
+"\n"
+"   Specifies the identifier of a registered mntner object used\n"
+"   for authorisation of operations performed with the object\n"
+"   that contains this attribute.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a name\n"
+"     must be a letter, and the last character of a name must be a\n"
+"     letter or a digit.  The following words are reserved by\n"
+"     RPSL, and they can not be used as names:\n"
+"   \n"
+"      any as-any rs-any peeras and or not atomic from to at\n"
+"      action accept announce except refine networks into inbound\n"
+"      outbound\n"
+"   \n"
+"     Names starting with certain prefixes are reserved for\n"
+"     certain object types.  Names starting with \"as-\" are\n"
+"     reserved for as set names.  Names starting with \"rs-\" are\n"
+"     reserved for route set names.  Names starting with \"rtrs-\"\n"
+"     are reserved for router set names. Names starting with\n"
+"     \"fltr-\" are reserved for filter set names. Names starting\n"
+"     with \"prng-\" are reserved for peering set names. Names\n"
+"     starting with \"irt-\" are reserved for irt names.\n"
+"       ""\n"
+"changed\n"
+"\n"
+"   Specifies who submitted the update, and when the object was\n"
+"   updated. \n"
+"    ""\n"
+"     An e-mail address as defined in RFC 2822, followed by a date\n"
+"     in the format YYYYMMDD.\n"
+"       ""\n"
+"source\n"
+"\n"
+"   Specifies the registry where the object is registered.  Should\n"
+"   be \"RIPE\" for the RIPE Database.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a \n"
+"     registry name must be a letter, and the last character of a\n"
+"     registry name must be a letter or a digit.\n"
+"       ""\n"
+,
+"The range class:\n"
+" \n"
+"      EU GSOC INTERNAL\n"
+"       \n"
+"      Range Object. High-Level internal allocation of\n"
+"      IPV4-Space for a dedicated purpose.  \n"
+"    ""\n"
+"range:         [mandatory]  [single]     [primary/look-up key]\n"
+"netname:       [mandatory]  [single]     [lookup key]\n"
+"registry:      [optional]   [single]     [inverse key]\n"
+"descr:         [mandatory]  [multiple]   [ ]\n"
+"country:       [mandatory]  [multiple]   [ ]\n"
+"status:        [mandatory]  [single]     [ ]\n"
+"remarks:       [optional]   [multiple]   [ ]\n"
+"location:      [optional]   [single]     [inverse key]\n"
+"usedfor:       [optional]   [single]     [inverse key]\n"
+"preference:    [optional]   [single]     [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"mnt-lower:     [optional]   [multiple]   [inverse key]\n"
+"notify:        [optional]   [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+"\n"
+"The content of the attributes of the range class are defined below:\n"
+"\n"
+"range\n"
+"\n"
+"   EU GSOC Internal\n"
+"\n"
+"   Specifies a range of IPv4 that inetnum object presents. The\n"
+"   ending address should be greater than the starting one.\n"
+"    ""\n"
+"     <ipv4-address> - <ipv4-address>\n"
+"       ""\n"
+"netname\n"
+"\n"
+"   The name of a range of IP address space.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a name\n"
+"     must be a letter, and the last character of a name must be a\n"
+"     letter or a digit.\n"
+"       ""\n"
+"registry\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      \n"
+"      Reference to the registry (reg-id) to which this object belongs\n"
+"      See also \"reg-id\" object. Must be a valid registry-id.\n"
+"\n"
+"      In the case of inetnum objects please only use registry fields\n"
+"      for objects of the type \"ALLOCATED\".\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"descr\n"
+"\n"
+"   A short decription related to the object.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"country\n"
+"\n"
+"   Identifies the country.\n"
+"    ""\n"
+"     Valid two-letter ISO 3166 country code.\n"
+"       ""\n"
+"status\n"
+"\n"
+"   Specifies the status of the address range represented by\n"
+"   inetnum or inet6num object.\n"
+"    ""\n"
+"     Status can have one of these values:\n"
+"\n"
+"     o ALLOCATED PA\n"
+"     o ALLOCATED PI\n"
+"     o ALLOCATED UNSPECIFIED\n"
+"     o LIR-PARTITIONED PA\n"
+"     o LIR-PARTITIONED PI\n"
+"     o ASSIGNED PA\n"
+"     o ASSIGNED PI\n"
+"     o EARLY-REGISTRATION\n"
+"       ""\n"
+"remarks\n"
+"\n"
+"   Contains remarks.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"location\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      \n"
+"      Reference to the facility to which this range is allocated.\n"
+"      See also \"facility\" object.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"usedfor\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"    \n"
+"      Reference to a \"purpose\" (object). \n"
+"      See also \"purpose\" object\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"preference\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      \n"
+"      Sets an preference for automatic or manual assignment into\n"
+"      a particular allocation. Example: a preference of 0 would\n"
+"      mean that no automatic-assignment is possible.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"mnt-by\n"
+"\n"
+"   Specifies the identifier of a registered mntner object used\n"
+"   for authorisation of operations performed with the object\n"
+"   that contains this attribute.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a name\n"
+"     must be a letter, and the last character of a name must be a\n"
+"     letter or a digit.  The following words are reserved by\n"
+"     RPSL, and they can not be used as names:\n"
+"   \n"
+"      any as-any rs-any peeras and or not atomic from to at\n"
+"      action accept announce except refine networks into inbound\n"
+"      outbound\n"
+"   \n"
+"     Names starting with certain prefixes are reserved for\n"
+"     certain object types.  Names starting with \"as-\" are\n"
+"     reserved for as set names.  Names starting with \"rs-\" are\n"
+"     reserved for route set names.  Names starting with \"rtrs-\"\n"
+"     are reserved for router set names. Names starting with\n"
+"     \"fltr-\" are reserved for filter set names. Names starting\n"
+"     with \"prng-\" are reserved for peering set names. Names\n"
+"     starting with \"irt-\" are reserved for irt names.\n"
+"       ""\n"
+"mnt-lower\n"
+"\n"
+"   Specifies the identifier of a registered mntner object used\n"
+"   for hierarchical authorisation.  Protects creation of objects\n"
+"   directly (one level) below in the hierarchy of an object type\n"
+"   (only for inetnum, inet6num, as-block, aut-num, route or\n"
+"   domain objects).  The authentication method of this maintainer\n"
+"   object will then be used upon creation of any object directly\n"
+"   below the object that contains the \"mnt-lower:\" attribute.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a name\n"
+"     must be a letter, and the last character of a name must be a\n"
+"     letter or a digit.  The following words are reserved by\n"
+"     RPSL, and they can not be used as names:\n"
+"   \n"
+"      any as-any rs-any peeras and or not atomic from to at\n"
+"      action accept announce except refine networks into inbound\n"
+"      outbound\n"
+"   \n"
+"     Names starting with certain prefixes are reserved for\n"
+"     certain object types.  Names starting with \"as-\" are\n"
+"     reserved for as set names.  Names starting with \"rs-\" are\n"
+"     reserved for route set names.  Names starting with \"rtrs-\"\n"
+"     are reserved for router set names. Names starting with\n"
+"     \"fltr-\" are reserved for filter set names. Names starting\n"
+"     with \"prng-\" are reserved for peering set names. Names\n"
+"     starting with \"irt-\" are reserved for irt names.\n"
+"       ""\n"
+"notify\n"
+"\n"
+"   Specifies the e-mail address to which notifications of changes\n"
+"   to an object should be sent.\n"
+"    ""\n"
+"     An e-mail address as defined in RFC 2822.\n"
+"       ""\n"
+"changed\n"
+"\n"
+"   Specifies who submitted the update, and when the object was\n"
+"   updated. \n"
+"    ""\n"
+"     An e-mail address as defined in RFC 2822, followed by a date\n"
+"     in the format YYYYMMDD.\n"
+"       ""\n"
+"source\n"
+"\n"
+"   Specifies the registry where the object is registered.  Should\n"
+"   be \"RIPE\" for the RIPE Database.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a \n"
+"     registry name must be a letter, and the last character of a\n"
+"     registry name must be a letter or a digit.\n"
+"       ""\n"
+,
+"The purpose class:\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      Purpose Definition.\n"
+"    ""\n"
+"purpose:       [mandatory]  [single]     [primary/look-up key]\n"
+"descr:         [mandatory]  [multiple]   [ ]\n"
+"address:       [optional]   [multiple]   [ ]\n"
+"remedyref:     [optional]   [single]     [ ]\n"
+"remarks:       [optional]   [multiple]   [ ]\n"
+"mnt-by:        [mandatory]  [multiple]   [inverse key]\n"
+"changed:       [mandatory]  [multiple]   [ ]\n"
+"source:        [mandatory]  [single]     [ ]\n"
+"\n"
+"The content of the attributes of the purpose class are defined below:\n"
+"\n"
+"purpose\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"      \n"
+"      Details of the purpose the block has been allocated for\n"
+"\n"
+"      See also \"facility\" object.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"descr\n"
+"\n"
+"   A short decription related to the object.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"address\n"
+"\n"
+"      Full postal address of a contact.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"remedyref\n"
+"\n"
+"      GSOC EU INTERNAL\n"
+"\n"
+"      Remedey Reference Field. May contain references to the local\n"
+"      ticket-management system in the future.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"remarks\n"
+"\n"
+"   Contains remarks.\n"
+"    ""\n"
+"     A sequence of ASCII characters.\n"
+"       ""\n"
+"mnt-by\n"
+"\n"
+"   Specifies the identifier of a registered mntner object used\n"
+"   for authorisation of operations performed with the object\n"
+"   that contains this attribute.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a name\n"
+"     must be a letter, and the last character of a name must be a\n"
+"     letter or a digit.  The following words are reserved by\n"
+"     RPSL, and they can not be used as names:\n"
+"   \n"
+"      any as-any rs-any peeras and or not atomic from to at\n"
+"      action accept announce except refine networks into inbound\n"
+"      outbound\n"
+"   \n"
+"     Names starting with certain prefixes are reserved for\n"
+"     certain object types.  Names starting with \"as-\" are\n"
+"     reserved for as set names.  Names starting with \"rs-\" are\n"
+"     reserved for route set names.  Names starting with \"rtrs-\"\n"
+"     are reserved for router set names. Names starting with\n"
+"     \"fltr-\" are reserved for filter set names. Names starting\n"
+"     with \"prng-\" are reserved for peering set names. Names\n"
+"     starting with \"irt-\" are reserved for irt names.\n"
+"       ""\n"
+"changed\n"
+"\n"
+"   Specifies who submitted the update, and when the object was\n"
+"   updated. \n"
+"    ""\n"
+"     An e-mail address as defined in RFC 2822, followed by a date\n"
+"     in the format YYYYMMDD.\n"
+"       ""\n"
+"source\n"
+"\n"
+"   Specifies the registry where the object is registered.  Should\n"
+"   be \"RIPE\" for the RIPE Database.\n"
+"    ""\n"
+"     Made up of letters, digits, the character underscore \"_\",\n"
+"     and the character hyphen \"-\"; the first character of a \n"
+"     registry name must be a letter, and the last character of a\n"
+"     registry name must be a letter or a digit.\n"
+"       ""\n"
+,
 NULL
 }; /* Templates_v */
Index: include/DF_radix_load.def
diff -Nau include/DF_radix_load.def.orig include/DF_radix_load.def
--- include/DF_radix_load.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/DF_radix_load.def	2004-03-18 13:02:16.630000000 +0100
@@ -16,5 +16,9 @@
 	"SELECT  object_id,prefix,prefix_length,origin                 FROM    route                 WHERE   thread_id = 0",
 	NULL
   },
+  { A_RA, RX_FAM_IN,
+	"SELECT  object_id,begin_in,end_in                 FROM    range                 WHERE   thread_id = 0",
+	NULL
+  },
   { -1, -1, NULL, NULL }
 };
Index: include/Diagrams.def
diff -Nau include/Diagrams.def.orig include/Diagrams.def
--- include/Diagrams.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/Diagrams.def	2004-03-18 13:02:14.400002000 +0100
@@ -1,343 +1,429 @@
 Classes:                       Foreign keys:
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-| ak: as-block         |      rb zc tc ml mi ct ah cn mb ac mu 
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-| ak: as-block  [P][L] |      |--|--|--|--|--|--|--|--|--|--|
-| de: descr            |      |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c      [I] |->----|--|--|--|--|--|--|--|--|--X--|
-| tc: tech-c       [I] |->----|--|--X--|--|--|--|--|--|--|--|
-| ny: notify       [I] |      |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--X--|--|
-| ml: mnt-lower    [I] |->----|--|--|--X--|--|--|--|--|--|--|
-| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|
-| so: source           |      |--|--|--|--|--|--|--|--|--|--|
-| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|
-| uo: override         |      |--|--|--|--|--|--|--|--|--|--|
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| as: as-set             |    rb zc tc ml mi ct ah cn mb ac mu 
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| as: as-set      [P][L] |    |--|--|--|--|--|--|--|--|--|--|
-| de: descr              |    |--|--|--|--|--|--|--|--|--|--|
-| ms: members            |    |--|--|--|--|--|--|--|--|--|--|
-| mr: mbrs-by-ref    [I] |    |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|
-| tc: tech-c         [I] |->--|--|--X--|--|--|--|--|--|--|--|
-| ac: admin-c        [I] |->--|--|--|--|--|--|--|--|--|--X--|
-| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--X--|--|
-| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|
-| so: source             |    |--|--|--|--|--|--|--|--|--|--|
-| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|
-| uo: override           |    |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-| an: aut-num           |     rb zc tc ml mi ct ah cn mb ac mu 
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-| an: aut-num    [P][L] |     |--|--|--|--|--|--|--|--|--|--|
-| aa: as-name           |     |--|--|--|--|--|--|--|--|--|--|
-| de: descr             |     |--|--|--|--|--|--|--|--|--|--|
-| mo: member-of         |     |--|--|--|--|--|--|--|--|--|--|
-| ip: import            |     |--|--|--|--|--|--|--|--|--|--|
-| ex: export            |     |--|--|--|--|--|--|--|--|--|--|
-| df: default           |     |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks           |     |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c       [I] |->---|--|--|--|--|--|--|--|--|--X--|
-| tc: tech-c        [I] |->---|--|--X--|--|--|--|--|--|--|--|
-| ct: cross-mnt     [I] |->---|--|--|--|--|--X--|--|--|--|--|
-| cn: cross-nfy     [I] |->---|--|--|--|--|--|--|--X--|--|--|
-| ny: notify        [I] |     |--|--|--|--|--|--|--|--|--|--|
-| ml: mnt-lower     [I] |->---|--|--|--X--|--|--|--|--|--|--|
-| mu: mnt-routes    [I] |->---|--|--|--|--|--|--|--|--|--|--X
-| mb: mnt-by        [I] |->---|--|--|--|--|--|--|--|--X--|--|
-| ch: changed           |     |--|--|--|--|--|--|--|--|--|--|
-| so: source            |     |--|--|--|--|--|--|--|--|--|--|
-| ud: delete            |     |--|--|--|--|--|--|--|--|--|--|
-| uo: override          |     |--|--|--|--|--|--|--|--|--|--|
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-| dn: domain           |      rb zc tc ml mi ct ah cn mb ac mu 
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-| dn: domain    [P][L] |      |--|--|--|--|--|--|--|--|--|--|
-| de: descr            |      |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c      [I] |->----|--|--|--|--|--|--|--|--|--X--|
-| tc: tech-c       [I] |->----|--|--X--|--|--|--|--|--|--|--|
-| zc: zone-c       [I] |->----|--X--|--|--|--|--|--|--|--|--|
-| ns: nserver      [I] |      |--|--|--|--|--|--|--|--|--|--|
-| sd: sub-dom      [I] |      |--|--|--|--|--|--|--|--|--|--|
-| di: dom-net          |      |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|
-| ny: notify       [I] |      |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--X--|--|
-| ml: mnt-lower    [I] |->----|--|--|--X--|--|--|--|--|--|--|
-| rf: refer            |      |--|--|--|--|--|--|--|--|--|--|
-| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|
-| so: source           |      |--|--|--|--|--|--|--|--|--|--|
-| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|
-| uo: override         |      |--|--|--|--|--|--|--|--|--|--|
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-| ir: inet-rtr         |      rb zc tc ml mi ct ah cn mb ac mu 
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-| ir: inet-rtr  [P][L] |      |--|--|--|--|--|--|--|--|--|--|
-| de: descr            |      |--|--|--|--|--|--|--|--|--|--|
-| az: alias            |      |--|--|--|--|--|--|--|--|--|--|
-| la: local-as     [I] |      |--|--|--|--|--|--|--|--|--|--|
-| if: ifaddr       [L] |      |--|--|--|--|--|--|--|--|--|--|
-| pe: peer             |      |--|--|--|--|--|--|--|--|--|--|
-| mo: member-of    [I] |      |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c      [I] |->----|--|--|--|--|--|--|--|--|--X--|
-| tc: tech-c       [I] |->----|--|--X--|--|--|--|--|--|--|--|
-| ny: notify       [I] |      |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--X--|--|
-| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|
-| so: source           |      |--|--|--|--|--|--|--|--|--|--|
-| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|
-| uo: override         |      |--|--|--|--|--|--|--|--|--|--|
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-| i6: inet6num         |      rb zc tc ml mi ct ah cn mb ac mu 
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-| i6: inet6num  [P][L] |      |--|--|--|--|--|--|--|--|--|--|
-| na: netname      [L] |      |--|--|--|--|--|--|--|--|--|--|
-| de: descr            |      |--|--|--|--|--|--|--|--|--|--|
-| cy: country          |      |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c      [I] |->----|--|--|--|--|--|--|--|--|--X--|
-| tc: tech-c       [I] |->----|--|--X--|--|--|--|--|--|--|--|
-| rz: rev-srv      [I] |      |--|--|--|--|--|--|--|--|--|--|
-| st: status           |      |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|
-| ny: notify       [I] |      |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--X--|--|
-| ml: mnt-lower    [I] |->----|--|--|--X--|--|--|--|--|--|--|
-| mi: mnt-irt      [I] |->----|--|--|--|--X--|--|--|--|--|--|
-| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|
-| so: source           |      |--|--|--|--|--|--|--|--|--|--|
-| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|
-| uo: override         |      |--|--|--|--|--|--|--|--|--|--|
-+----------------------+      |--|--|--|--|--|--|--|--|--|--|
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-| in: inetnum           |     rb zc tc ml mi ct ah cn mb ac mu 
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-| in: inetnum    [P][L] |     |--|--|--|--|--|--|--|--|--|--|
-| na: netname       [L] |     |--|--|--|--|--|--|--|--|--|--|
-| de: descr             |     |--|--|--|--|--|--|--|--|--|--|
-| cy: country           |     |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c       [I] |->---|--|--|--|--|--|--|--|--|--X--|
-| tc: tech-c        [I] |->---|--|--X--|--|--|--|--|--|--|--|
-| rz: rev-srv       [I] |     |--|--|--|--|--|--|--|--|--|--|
-| st: status            |     |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks           |     |--|--|--|--|--|--|--|--|--|--|
-| ny: notify        [I] |     |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by        [I] |->---|--|--|--|--|--|--|--|--X--|--|
-| ml: mnt-lower     [I] |->---|--|--|--X--|--|--|--|--|--|--|
-| mu: mnt-routes    [I] |->---|--|--|--|--|--|--|--|--|--|--X
-| mi: mnt-irt       [I] |->---|--|--|--|--X--|--|--|--|--|--|
-| ch: changed           |     |--|--|--|--|--|--|--|--|--|--|
-| so: source            |     |--|--|--|--|--|--|--|--|--|--|
-| ud: delete            |     |--|--|--|--|--|--|--|--|--|--|
-| uo: override          |     |--|--|--|--|--|--|--|--|--|--|
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-| kc: key-cert        |       rb zc tc ml mi ct ah cn mb ac mu 
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-| kc: key-cert [P][L] |       |--|--|--|--|--|--|--|--|--|--|
-| mh: method          |       |--|--|--|--|--|--|--|--|--|--|
-| ow: owner           |       |--|--|--|--|--|--|--|--|--|--|
-| fp: fingerpr        |       |--|--|--|--|--|--|--|--|--|--|
-| ce: certif          |       |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks         |       |--|--|--|--|--|--|--|--|--|--|
-| ny: notify      [I] |       |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--X--|--|
-| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|
-| so: source          |       |--|--|--|--|--|--|--|--|--|--|
-| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|
-| uo: override        |       |--|--|--|--|--|--|--|--|--|--|
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-| li: limerick        |       rb zc tc ml mi ct ah cn mb ac mu 
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-| li: limerick [P][L] |       |--|--|--|--|--|--|--|--|--|--|
-| de: descr           |       |--|--|--|--|--|--|--|--|--|--|
-| tx: text            |       |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c     [I] |->-----|--|--|--|--|--|--|--|--|--X--|
-| ah: author      [I] |->-----|--|--|--|--|--|--X--|--|--|--|
-| rm: remarks         |       |--|--|--|--|--|--|--|--|--|--|
-| ny: notify      [I] |       |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--X--|--|
-| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|
-| so: source          |       |--|--|--|--|--|--|--|--|--|--|
-| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|
-| uo: override        |       |--|--|--|--|--|--|--|--|--|--|
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| mt: mntner             |    rb zc tc ml mi ct ah cn mb ac mu 
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| mt: mntner      [P][L] |-|--o--|--|--o--|--o--|--|--o--|--o
-| de: descr              |    |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c        [I] |->--|--|--|--|--|--|--|--|--|--X--|
-| tc: tech-c         [I] |->--|--|--X--|--|--|--|--|--|--|--|
-| dt: upd-to         [I] |    |--|--|--|--|--|--|--|--|--|--|
-| mn: mnt-nfy        [I] |    |--|--|--|--|--|--|--|--|--|--|
-| at: auth               |    |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|
-| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--X--|--|
-| rb: referral-by    [I] |->--X--|--|--|--|--|--|--|--|--|--|
-| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|
-| so: source             |    |--|--|--|--|--|--|--|--|--|--|
-| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|
-| uo: override           |    |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-| pn: person          |       rb zc tc ml mi ct ah cn mb ac mu 
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-| pn: person      [L] |       |--|--|--|--|--|--|--|--|--|--|
-| ad: address         |       |--|--|--|--|--|--|--|--|--|--|
-| ph: phone           |       |--|--|--|--|--|--|--|--|--|--|
-| fx: fax-no          |       |--|--|--|--|--|--|--|--|--|--|
-| em: e-mail      [L] |       |--|--|--|--|--|--|--|--|--|--|
-| nh: nic-hdl  [P][L] |-|-----|--o--o--|--|--|--o--o--|--o--|
-| rm: remarks         |       |--|--|--|--|--|--|--|--|--|--|
-| ny: notify      [I] |       |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--X--|--|
-| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|
-| so: source          |       |--|--|--|--|--|--|--|--|--|--|
-| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|
-| uo: override        |       |--|--|--|--|--|--|--|--|--|--|
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-| ro: role            |       rb zc tc ml mi ct ah cn mb ac mu 
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-| ro: role        [L] |       |--|--|--|--|--|--|--|--|--|--|
-| ad: address         |       |--|--|--|--|--|--|--|--|--|--|
-| ph: phone           |       |--|--|--|--|--|--|--|--|--|--|
-| fx: fax-no          |       |--|--|--|--|--|--|--|--|--|--|
-| em: e-mail      [L] |       |--|--|--|--|--|--|--|--|--|--|
-| tb: trouble         |       |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c     [I] |->-----|--|--|--|--|--|--|--|--|--X--|
-| tc: tech-c      [I] |->-----|--|--X--|--|--|--|--|--|--|--|
-| nh: nic-hdl  [P][L] |-|-----|--o--o--|--|--|--o--o--|--o--|
-| rm: remarks         |       |--|--|--|--|--|--|--|--|--|--|
-| ny: notify      [I] |       |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--X--|--|
-| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|
-| so: source          |       |--|--|--|--|--|--|--|--|--|--|
-| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|
-| uo: override        |       |--|--|--|--|--|--|--|--|--|--|
-+---------------------+       |--|--|--|--|--|--|--|--|--|--|
-+-------------------------+   |--|--|--|--|--|--|--|--|--|--|
-| rt: route               |   rb zc tc ml mi ct ah cn mb ac mu 
-+-------------------------+   |--|--|--|--|--|--|--|--|--|--|
-| rt: route        [P][L] |   |--|--|--|--|--|--|--|--|--|--|
-| de: descr               |   |--|--|--|--|--|--|--|--|--|--|
-| or: origin       [P][I] |   |--|--|--|--|--|--|--|--|--|--|
-| ho: holes               |   |--|--|--|--|--|--|--|--|--|--|
-| mo: member-of           |   |--|--|--|--|--|--|--|--|--|--|
-| ij: inject              |   |--|--|--|--|--|--|--|--|--|--|
-| ag: aggr-mtd            |   |--|--|--|--|--|--|--|--|--|--|
-| ab: aggr-bndry          |   |--|--|--|--|--|--|--|--|--|--|
-| ec: export-comps        |   |--|--|--|--|--|--|--|--|--|--|
-| co: components          |   |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks             |   |--|--|--|--|--|--|--|--|--|--|
-| ct: cross-mnt       [I] |->-|--|--|--|--|--X--|--|--|--|--|
-| cn: cross-nfy       [I] |->-|--|--|--|--|--|--|--X--|--|--|
-| ny: notify          [I] |   |--|--|--|--|--|--|--|--|--|--|
-| ml: mnt-lower       [I] |->-|--|--|--X--|--|--|--|--|--|--|
-| mu: mnt-routes      [I] |->-|--|--|--|--|--|--|--|--|--|--X
-| mb: mnt-by          [I] |->-|--|--|--|--|--|--|--|--X--|--|
-| ch: changed             |   |--|--|--|--|--|--|--|--|--|--|
-| so: source              |   |--|--|--|--|--|--|--|--|--|--|
-| ud: delete              |   |--|--|--|--|--|--|--|--|--|--|
-| uo: override            |   |--|--|--|--|--|--|--|--|--|--|
-+-------------------------+   |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| rs: route-set          |    rb zc tc ml mi ct ah cn mb ac mu 
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| rs: route-set   [P][L] |    |--|--|--|--|--|--|--|--|--|--|
-| de: descr              |    |--|--|--|--|--|--|--|--|--|--|
-| ms: members            |    |--|--|--|--|--|--|--|--|--|--|
-| mr: mbrs-by-ref    [I] |    |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|
-| tc: tech-c         [I] |->--|--|--X--|--|--|--|--|--|--|--|
-| ac: admin-c        [I] |->--|--|--|--|--|--|--|--|--|--X--|
-| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--X--|--|
-| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|
-| so: source             |    |--|--|--|--|--|--|--|--|--|--|
-| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|
-| uo: override           |    |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-| fs: filter-set        |     rb zc tc ml mi ct ah cn mb ac mu 
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-| fs: filter-set [P][L] |     |--|--|--|--|--|--|--|--|--|--|
-| de: descr             |     |--|--|--|--|--|--|--|--|--|--|
-| fi: filter            |     |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks           |     |--|--|--|--|--|--|--|--|--|--|
-| tc: tech-c        [I] |->---|--|--X--|--|--|--|--|--|--|--|
-| ac: admin-c       [I] |->---|--|--|--|--|--|--|--|--|--X--|
-| ny: notify        [I] |     |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by        [I] |->---|--|--|--|--|--|--|--|--X--|--|
-| ch: changed           |     |--|--|--|--|--|--|--|--|--|--|
-| so: source            |     |--|--|--|--|--|--|--|--|--|--|
-| ud: delete            |     |--|--|--|--|--|--|--|--|--|--|
-| uo: override          |     |--|--|--|--|--|--|--|--|--|--|
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| ps: peering-set        |    rb zc tc ml mi ct ah cn mb ac mu 
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| ps: peering-set [P][L] |    |--|--|--|--|--|--|--|--|--|--|
-| de: descr              |    |--|--|--|--|--|--|--|--|--|--|
-| pg: peering            |    |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|
-| tc: tech-c         [I] |->--|--|--X--|--|--|--|--|--|--|--|
-| ac: admin-c        [I] |->--|--|--|--|--|--|--|--|--|--X--|
-| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--X--|--|
-| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|
-| so: source             |    |--|--|--|--|--|--|--|--|--|--|
-| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|
-| uo: override           |    |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| is: rtr-set            |    rb zc tc ml mi ct ah cn mb ac mu 
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-| is: rtr-set     [P][L] |    |--|--|--|--|--|--|--|--|--|--|
-| de: descr              |    |--|--|--|--|--|--|--|--|--|--|
-| ms: members            |    |--|--|--|--|--|--|--|--|--|--|
-| mr: mbrs-by-ref    [I] |    |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|
-| tc: tech-c         [I] |->--|--|--X--|--|--|--|--|--|--|--|
-| ac: admin-c        [I] |->--|--|--|--|--|--|--|--|--|--X--|
-| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--X--|--|
-| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|
-| so: source             |    |--|--|--|--|--|--|--|--|--|--|
-| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|
-| uo: override           |    |--|--|--|--|--|--|--|--|--|--|
-+------------------------+    |--|--|--|--|--|--|--|--|--|--|
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-| it: irt               |     rb zc tc ml mi ct ah cn mb ac mu 
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
-| it: irt        [P][L] |-|---|--|--|--|--o--|--|--|--|--|--|
-| ad: address           |     |--|--|--|--|--|--|--|--|--|--|
-| ph: phone             |     |--|--|--|--|--|--|--|--|--|--|
-| fx: fax-no            |     |--|--|--|--|--|--|--|--|--|--|
-| em: e-mail        [L] |     |--|--|--|--|--|--|--|--|--|--|
-| sg: signature         |     |--|--|--|--|--|--|--|--|--|--|
-| en: encryption        |     |--|--|--|--|--|--|--|--|--|--|
-| ac: admin-c       [I] |->---|--|--|--|--|--|--|--|--|--X--|
-| tc: tech-c        [I] |->---|--|--X--|--|--|--|--|--|--|--|
-| at: auth              |     |--|--|--|--|--|--|--|--|--|--|
-| rm: remarks           |     |--|--|--|--|--|--|--|--|--|--|
-| iy: irt-nfy       [I] |     |--|--|--|--|--|--|--|--|--|--|
-| ny: notify        [I] |     |--|--|--|--|--|--|--|--|--|--|
-| mb: mnt-by        [I] |->---|--|--|--|--|--|--|--|--X--|--|
-| ch: changed           |     |--|--|--|--|--|--|--|--|--|--|
-| so: source            |     |--|--|--|--|--|--|--|--|--|--|
-| ud: delete            |     |--|--|--|--|--|--|--|--|--|--|
-| uo: override          |     |--|--|--|--|--|--|--|--|--|--|
-+-----------------------+     |--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ak: as-block         |      ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ak: as-block  [P][L] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr            |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c      [I] |->----|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c       [I] |->----|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| ny: notify       [I] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ml: mnt-lower    [I] |->----|--|--|--|--|--|--|--|--X--|--|--|--|--|--|
+| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override         |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| as: as-set             |    ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| as: as-set      [P][L] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr              |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ms: members            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mr: mbrs-by-ref    [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c         [I] |->--|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| ac: admin-c        [I] |->--|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override           |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| an: aut-num           |     ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| an: aut-num    [P][L] |-|---o--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| aa: as-name           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr             |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mo: member-of         |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ip: import            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ex: export            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| df: default           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c       [I] |->---|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c        [I] |->---|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| ct: cross-mnt     [I] |->---|--|--|--|--|--|--|--X--|--|--|--|--|--|--|
+| cn: cross-nfy     [I] |->---|--|--|--|--|--|--|--|--|--|--X--|--|--|--|
+| ny: notify        [I] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ml: mnt-lower     [I] |->---|--|--|--|--|--|--|--|--X--|--|--|--|--|--|
+| mu: mnt-routes    [I] |->---|--|--|--|--|--X--|--|--|--|--|--|--|--|--|
+| mb: mnt-by        [I] |->---|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override          |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| dn: domain           |      ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| dn: domain    [P][L] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr            |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c      [I] |->----|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c       [I] |->----|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| zc: zone-c       [I] |->----|--|--|--|--|--|--|--|--|--|--|--X--|--|--|
+| ns: nserver      [I] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| sd: sub-dom      [I] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| di: dom-net          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ny: notify       [I] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ml: mnt-lower    [I] |->----|--|--|--|--|--|--|--|--X--|--|--|--|--|--|
+| rf: refer            |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| lc: comment          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override         |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ir: inet-rtr         |      ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ir: inet-rtr  [P][L] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr            |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| az: alias            |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| la: local-as     [I] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| if: ifaddr       [L] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| pe: peer             |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mo: member-of    [I] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c      [I] |->----|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c       [I] |->----|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| ny: notify       [I] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override         |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| i6: inet6num         |      ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| i6: inet6num  [P][L] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| na: netname      [L] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr            |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| cy: country          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c      [I] |->----|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c       [I] |->----|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| rz: rev-srv      [I] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| st: status           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ny: notify       [I] |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ml: mnt-lower    [I] |->----|--|--|--|--|--|--|--|--X--|--|--|--|--|--|
+| mi: mnt-irt      [I] |->----|--|--|--|--|--|--|--|--|--X--|--|--|--|--|
+| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override         |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| in: inetnum           |     ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| in: inetnum    [P][L] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| na: netname       [L] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rg: registry      [I] |->---|--|--|--|--|--|--|--|--|--|--|--|--|--|--X
+| de: descr             |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ae: assigned          |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| cy: country           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c       [I] |->---|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c        [I] |->---|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| rz: rev-srv       [I] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| st: status            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ny: notify        [I] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by        [I] |->---|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ml: mnt-lower     [I] |->---|--|--|--|--|--|--|--|--X--|--|--|--|--|--|
+| mu: mnt-routes    [I] |->---|--|--|--|--|--X--|--|--|--|--|--|--|--|--|
+| mi: mnt-irt       [I] |->---|--|--|--|--|--|--|--|--|--X--|--|--|--|--|
+| lc: comment           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ch: changed           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override          |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| kc: key-cert        |       ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| kc: key-cert [P][L] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mh: method          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ow: owner           |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| fp: fingerpr        |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ce: certif          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ny: notify      [I] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override        |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| li: limerick        |       ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| li: limerick [P][L] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr           |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| tx: text            |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c     [I] |->-----|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| ah: author      [I] |->-----|--|--|--X--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ny: notify      [I] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override        |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mt: mntner             |    ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mt: mntner      [P][L] |-|--|--o--|--|--|--o--|--o--o--|--|--|--o--|--|
+| de: descr              |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c        [I] |->--|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c         [I] |->--|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| dt: upd-to         [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mn: mnt-nfy        [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| at: auth               |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| rb: referral-by    [I] |->--|--X--|--|--|--|--|--|--|--|--|--|--|--|--|
+| lc: comment            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override           |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| pn: person          |       ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| pn: person      [L] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ad: address         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ph: phone           |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| fx: fax-no          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| em: e-mail      [L] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| nh: nic-hdl  [P][L] |-|-----|--|--|--o--o--|--o--|--|--|--o--o--|--|--|
+| rm: remarks         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ny: notify      [I] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| lc: comment         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override        |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ro: role            |       ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ro: role        [L] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ad: address         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ph: phone           |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| fx: fax-no          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| em: e-mail      [L] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| tb: trouble         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c     [I] |->-----|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c      [I] |->-----|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| nh: nic-hdl  [P][L] |-|-----|--|--|--o--o--|--o--|--|--|--o--o--|--|--|
+| rm: remarks         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ny: notify      [I] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| lc: comment         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override        |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-------------------------+   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rt: route               |   ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++-------------------------+   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rt: route        [P][L] |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr               |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| or: origin       [P][I] |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ho: holes               |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mo: member-of           |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ij: inject              |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ag: aggr-mtd            |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ab: aggr-bndry          |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ec: export-comps        |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| co: components          |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks             |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ct: cross-mnt       [I] |->-|--|--|--|--|--|--|--X--|--|--|--|--|--|--|
+| cn: cross-nfy       [I] |->-|--|--|--|--|--|--|--|--|--|--X--|--|--|--|
+| ny: notify          [I] |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ml: mnt-lower       [I] |->-|--|--|--|--|--|--|--|--X--|--|--|--|--|--|
+| mu: mnt-routes      [I] |->-|--|--|--|--|--X--|--|--|--|--|--|--|--|--|
+| mb: mnt-by          [I] |->-|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed             |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source              |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete              |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override            |   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-------------------------+   |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rs: route-set          |    ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rs: route-set   [P][L] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr              |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ms: members            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mr: mbrs-by-ref    [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c         [I] |->--|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| ac: admin-c        [I] |->--|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override           |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| fs: filter-set        |     ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| fs: filter-set [P][L] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr             |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| fi: filter            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c        [I] |->---|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| ac: admin-c       [I] |->---|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| ny: notify        [I] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by        [I] |->---|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override          |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ps: peering-set        |    ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ps: peering-set [P][L] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr              |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| pg: peering            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c         [I] |->--|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| ac: admin-c        [I] |->--|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override           |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| is: rtr-set            |    ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| is: rtr-set     [P][L] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr              |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ms: members            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mr: mbrs-by-ref    [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c         [I] |->--|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| ac: admin-c        [I] |->--|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| ny: notify         [I] |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by         [I] |->--|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed            |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete             |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override           |    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++------------------------+    |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| it: irt               |     ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| it: irt        [P][L] |-|---|--|--|--|--|--|--|--|--|--o--|--|--|--|--|
+| ad: address           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ph: phone             |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| fx: fax-no            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| em: e-mail        [L] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| sg: signature         |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| en: encryption        |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ac: admin-c       [I] |->---|--|--|--|--X--|--|--|--|--|--|--|--|--|--|
+| tc: tech-c        [I] |->---|--|--|--|--|--|--X--|--|--|--|--|--|--|--|
+| at: auth              |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| iy: irt-nfy       [I] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ny: notify        [I] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by        [I] |->---|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override          |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ri: reg-id          |       ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ri: reg-id   [P][L] |-|-----|--|--|--|--|--|--|--|--|--|--|--|--|--|--o
+| ww: window          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ax: as-num      [I] |->-----X--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr           |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override        |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| pp: facility         |      ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| pp: facility  [P][L] |-|----|--|--|--|--|--|--|--|--|--|--|--|--|--o--|
+| ad: address          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rg: registry     [I] |->----|--|--|--|--|--|--|--|--|--|--|--|--|--|--X
+| rr: remedyref        |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ax: as-num       [I] |->----X--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override         |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| tk: ticket          |       ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| tk: ticket   [P][L] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| na: netname     [L] |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rg: registry    [I] |->-----|--|--|--|--|--|--|--|--|--|--|--|--|--|--X
+| sz: size            |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr           |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| cr: created         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| fu: formurl         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by      [I] |->-----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed         |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete          |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override        |       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++---------------------+       |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ra: range             |     ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ra: range      [P][L] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| na: netname       [L] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rg: registry      [I] |->---|--|--|--|--|--|--|--|--|--|--|--|--|--|--X
+| de: descr             |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| cy: country           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| st: status            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| pf: location      [I] |->---|--|--|--|--|--|--|--|--|--|--|--|--|--X--|
+| uf: usedfor       [I] |->---|--|--X--|--|--|--|--|--|--|--|--|--|--|--|
+| pr: preference        |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by        [I] |->---|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ml: mnt-lower     [I] |->---|--|--|--|--|--|--|--|--X--|--|--|--|--|--|
+| ny: notify        [I] |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ch: changed           |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete            |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override          |     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++-----------------------+     |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| pu: purpose          |      ax rb uf ah ac mu tc ct ml mi cn zc mb pf rg 
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| pu: purpose   [P][L] |-|----|--|--o--|--|--|--|--|--|--|--|--|--|--|--|
+| de: descr            |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ad: address          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rr: remedyref        |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| rm: remarks          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| mb: mnt-by       [I] |->----|--|--|--|--|--|--|--|--|--|--|--|--X--|--|
+| ch: changed          |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| so: source           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| ud: delete           |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
+| uo: override         |      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
++----------------------+      |--|--|--|--|--|--|--|--|--|--|--|--|--|--|
Index: include/QI_queries.def
diff -Nau include/QI_queries.def.orig include/QI_queries.def
--- include/QI_queries.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/QI_queries.def	2004-03-18 13:01:31.290089000 +0100
@@ -3,29 +3,38 @@
   {
     R_SQL,
     Q_LOOKUP,
-    WK_ASSETNAME,
-    A_AS,
-    C_AS,
-    "SELECT object_id           FROM   as_set           WHERE  as_set = '%s'           AND    thread_id = 0",
-    "SQL:as/as/WK_ASSETNAME"
+    WK_NIC_HDL,
+    A_NH,
+    C_PN,
+    "SELECT object_id           FROM   person_role           WHERE  nic_hdl = '%s'           AND    object_type = 10           AND    thread_id = 0",
+    "SQL:pn/nh/WK_NIC_HDL"
     },
   {
     R_SQL,
-    Q_INVERSE,
+    Q_LOOKUP,
     WK_NIC_HDL,
-    A_ZC,
+    A_NH,
+    C_RO,
+    "SELECT object_id           FROM   person_role           WHERE  nic_hdl = '%s'           AND    object_type = 11           AND    thread_id = 0",
+    "SQL:ro/nh/WK_NIC_HDL"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_POP,
+    A_PF,
     C_ANY,
-    "SELECT i.object_id           FROM   zone_c i, person_role           WHERE  i.pe_ro_id = person_role.object_id           AND    person_role.nic_hdl  = '%s'           AND    i.thread_id = 0",
-    "SQL:ANY/zc/WK_NIC_HDL"
+    "SELECT i.object_id           FROM   pop, pop_ref i           WHERE  pop.object_id = i.pop_id           AND    pop.pop  = '%s'           AND    i.thread_id = 0",
+    "SQL:ANY/pf/WK_POP"
     },
   {
     R_SQL,
     Q_INVERSE,
-    WK_MNTNER,
-    A_MR,
+    WK_AUTNUM,
+    A_AX,
     C_ANY,
-    "SELECT MR.object_id         FROM   mbrs_by_ref MR, mntner MT         WHERE  MT.mntner = '%s'         AND    MT.dummy = 0         AND    MT.object_id = MR.mnt_id         AND    MR.thread_id = 0",
-    "SQL:ANY/mr/WK_MNTNER"
+    "SELECT i.object_id           FROM   aut_num, as_ref i           WHERE  aut_num.object_id = i.as_id           AND    aut_num.aut_num  = '%s'           AND    i.thread_id = 0",
+    "SQL:ANY/ax/WK_AUTNUM"
     },
   {
     R_SQL,
@@ -48,6 +57,15 @@
   {
     R_SQL,
     Q_LOOKUP,
+    WK_RTRSET,
+    A_IS,
+    C_IS,
+    "SELECT object_id         FROM   rtr_set         WHERE  rtr_set='%s'         AND    thread_id=0",
+    "SQL:is/is/WK_RTRSET"
+    },
+  {
+    R_SQL,
+    Q_LOOKUP,
     WK_ASRANGE,
     A_AK,
     C_AK,
@@ -58,136 +76,181 @@
     R_SQL,
     Q_INVERSE,
     WK_NIC_HDL,
-    A_AC,
+    A_AH,
     C_ANY,
-    "SELECT i.object_id           FROM   admin_c i, person_role           WHERE  i.pe_ro_id = person_role.object_id           AND    person_role.nic_hdl  = '%s' 	  AND	 i.thread_id = 0",
-    "SQL:ANY/ac/WK_NIC_HDL"
+    "SELECT i.object_id           FROM   person_role, author i           WHERE  person_role.object_id = i.pe_ro_id           AND    person_role.nic_hdl  = '%s'           AND    i.thread_id = 0",
+    "SQL:ANY/ah/WK_NIC_HDL"
     },
   {
     R_SQL,
     Q_LOOKUP,
-    WK_NAME,
-    A_PN,
-    C_PN,
-    "SELECT N00.object_id           FROM   %s           WHERE  %s           AND    N00.object_type = 10           AND    N00.thread_id = 0",
-    "SQL:pn/pn/WK_NAME"
+    WK_IPADDRESS,
+    A_IF,
+    C_IR,
+    "SELECT object_id           FROM   ifaddr           WHERE  ifaddr >= %u           AND    ifaddr <= %u           AND    thread_id = 0",
+    "SQL:ir/if/WK_IPADDRESS"
     },
   {
     R_SQL,
     Q_INVERSE,
-    WK_NIC_HDL,
-    A_AH,
-    C_ANY,
-    "SELECT i.object_id           FROM   person_role, author i           WHERE  person_role.object_id = i.pe_ro_id           AND    person_role.nic_hdl  = '%s'           AND    i.thread_id = 0",
-    "SQL:ANY/ah/WK_NIC_HDL"
+    WK_DOMAIN,
+    A_RZ,
+    C_IN,
+    "SELECT object_id           FROM   rev_srv           WHERE  rev_srv = '%s'           AND    thread_id = 0",
+    "SQL:in/rz/WK_DOMAIN"
     },
   {
     R_SQL,
-    Q_LOOKUP,
-    WK_NIC_HDL,
-    A_NH,
-    C_PN,
-    "SELECT object_id           FROM   person_role           WHERE  nic_hdl = '%s'           AND    object_type = 10           AND    thread_id = 0",
-    "SQL:pn/nh/WK_NIC_HDL"
+    Q_INVERSE,
+    WK_DOMAIN,
+    A_RZ,
+    C_I6,
+    "SELECT object_id           FROM   rev_srv           WHERE  rev_srv = '%s'           AND    thread_id = 0",
+    "SQL:i6/rz/WK_DOMAIN"
     },
   {
     R_SQL,
-    Q_LOOKUP,
+    Q_INVERSE,
     WK_NIC_HDL,
-    A_NH,
-    C_RO,
-    "SELECT object_id           FROM   person_role           WHERE  nic_hdl = '%s'           AND    object_type = 11           AND    thread_id = 0",
-    "SQL:ro/nh/WK_NIC_HDL"
+    A_CN,
+    C_ANY,
+    "SELECT i.object_id           FROM   person_role, cross_nfy i           WHERE  person_role.object_id = i.pe_ro_id           AND    person_role.nic_hdl  = '%s'           AND    i.thread_id = 0",
+    "SQL:ANY/cn/WK_NIC_HDL"
     },
   {
     R_SQL,
     Q_LOOKUP,
-    WK_AUTNUM,
-    A_AN,
-    C_AN,
-    "SELECT object_id           FROM   aut_num           WHERE  aut_num = '%s'           AND    thread_id = 0",
-    "SQL:an/an/WK_AUTNUM"
+    WK_MNTNER,
+    A_MT,
+    C_MT,
+    "SELECT object_id           FROM   mntner           WHERE  mntner = '%s'           AND    thread_id = 0",
+    "SQL:mt/mt/WK_MNTNER"
     },
   {
     R_SQL,
     Q_INVERSE,
-    WK_MNTNER,
-    A_RB,
+    WK_NIC_HDL,
+    A_TC,
     C_ANY,
-    "SELECT i.object_id           FROM   mntner, referral_by i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner = '%s'           AND    i.thread_id = 0",
-    "SQL:ANY/rb/WK_MNTNER"
+    "SELECT i.object_id           FROM   tech_c i, person_role           WHERE  i.pe_ro_id = person_role.object_id           AND    person_role.nic_hdl  = '%s' 	  AND	 i.thread_id = 0",
+    "SQL:ANY/tc/WK_NIC_HDL"
     },
   {
     R_SQL,
     Q_INVERSE,
     WK_MNTNER,
-    A_MB,
+    A_ML,
     C_ANY,
-    "SELECT i.object_id           FROM   mntner, mnt_by i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner = '%s' 	  AND	 i.thread_id = 0",
-    "SQL:ANY/mb/WK_MNTNER"
+    "SELECT i.object_id           FROM   mntner, mnt_lower i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner  = '%s'           AND    i.thread_id = 0",
+    "SQL:ANY/ml/WK_MNTNER"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_AUTNUM,
+    A_LA,
+    C_IR,
+    "SELECT object_id           FROM   inet_rtr           WHERE  local_as  = '%s'           AND    thread_id = 0",
+    "SQL:ir/la/WK_AUTNUM"
     },
   {
     R_SQL,
     Q_INVERSE,
     WK_MNTNER,
-    A_CT,
+    A_MB,
     C_ANY,
-    "SELECT i.object_id           FROM   mntner, cross_mnt i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner = '%s'           AND    i.thread_id = 0",
-    "SQL:ANY/ct/WK_MNTNER"
+    "SELECT i.object_id           FROM   mntner, mnt_by i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner = '%s' 	  AND	 i.thread_id = 0",
+    "SQL:ANY/mb/WK_MNTNER"
     },
   {
     R_SQL,
-    Q_INVERSE,
-    WK_EMAIL,
-    A_MN,
-    C_MT,
-    "SELECT object_id           FROM   mnt_nfy           WHERE  mnt_nfy = '%s'           AND    thread_id = 0",
-    "SQL:mt/mn/WK_EMAIL"
+    Q_LOOKUP,
+    WK_DOMAIN,
+    A_IR,
+    C_IR,
+    "SELECT object_id           FROM   inet_rtr           WHERE  inet_rtr = '%s'           AND    thread_id = 0",
+    "SQL:ir/ir/WK_DOMAIN"
+    },
+  {
+    R_RADIX,
+    Q_LOOKUP,
+    WK_IP6PREFIX,
+    A_I6,
+    C_I6,
+    "",
+    "RADIX:i6/WK_IP6PREFIX"
     },
   {
     R_RADIX,
     Q_LOOKUP,
     WK_IPRANGE,
-    A_RT,
-    C_RT,
+    A_RA,
+    C_RA,
     "",
-    "RADIX:rt/WK_IPRANGE"
+    "RADIX:ra/WK_IPRANGE"
     },
   {
     R_RADIX,
     Q_LOOKUP,
     WK_IPPREFIX,
-    A_RT,
-    C_RT,
+    A_RA,
+    C_RA,
     "",
-    "RADIX:rt/WK_IPPREFIX"
+    "RADIX:ra/WK_IPPREFIX"
     },
   {
     R_RADIX,
     Q_LOOKUP,
     WK_IPADDRESS,
-    A_RT,
-    C_RT,
+    A_RA,
+    C_RA,
     "",
-    "RADIX:rt/WK_IPADDRESS"
+    "RADIX:ra/WK_IPADDRESS"
     },
   {
     R_SQL,
     Q_LOOKUP,
-    WK_DOMAIN,
-    A_IR,
-    C_IR,
-    "SELECT object_id           FROM   inet_rtr           WHERE  inet_rtr = '%s'           AND    thread_id = 0",
-    "SQL:ir/ir/WK_DOMAIN"
+    WK_AUTNUM,
+    A_AN,
+    C_AN,
+    "SELECT object_id           FROM   aut_num           WHERE  aut_num = '%s'           AND    thread_id = 0",
+    "SQL:an/an/WK_AUTNUM"
     },
   {
     R_SQL,
     Q_LOOKUP,
-    WK_NAME,
-    A_RO,
-    C_RO,
-    "SELECT N00.object_id           FROM   %s           WHERE  %s           AND    N00.object_type = 11           AND    N00.thread_id = 0",
-    "SQL:ro/ro/WK_NAME"
+    WK_FILTERSET,
+    A_FS,
+    C_FS,
+    "SELECT object_id 	FROM   filter_set  	WHERE  filter_set='%s' 	AND    thread_id=0",
+    "SQL:fs/fs/WK_FILTERSET"
+    },
+  {
+    R_SQL,
+    Q_LOOKUP,
+    WK_POP,
+    A_PP,
+    C_PP,
+    "SELECT object_id           FROM   pop           WHERE  pop = '%s' 	  AND	 thread_id = 0",
+    "SQL:pp/pp/WK_POP"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_MNTNER,
+    A_MR,
+    C_ANY,
+    "SELECT MR.object_id         FROM   mbrs_by_ref MR, mntner MT         WHERE  MT.mntner = '%s'         AND    MT.dummy = 0         AND    MT.object_id = MR.mnt_id         AND    MR.thread_id = 0",
+    "SQL:ANY/mr/WK_MNTNER"
+    },
+  {
+    R_SQL,
+    Q_LOOKUP,
+    WK_LIMERICK,
+    A_LI,
+    C_LI,
+    "SELECT object_id           FROM   limerick           WHERE  limerick = '%s'           AND    thread_id = 0",
+    "SQL:li/li/WK_LIMERICK"
     },
   {
     R_RADIX,
@@ -228,38 +291,47 @@
   {
     R_SQL,
     Q_INVERSE,
-    WK_DOMAIN,
-    A_NS,
-    C_DN,
-    "SELECT object_id           FROM   nserver           WHERE  host = '%s'           AND    thread_id = 0",
-    "SQL:dn/ns/WK_DOMAIN"
+    WK_EMAIL,
+    A_DT,
+    C_MT,
+    "SELECT object_id           FROM   upd_to           WHERE  upd_to = '%s'           AND    thread_id = 0",
+    "SQL:mt/dt/WK_EMAIL"
     },
   {
     R_SQL,
     Q_INVERSE,
-    WK_IPADDRESS,
-    A_NS,
-    C_DN,
-    "SELECT object_id           FROM   nserver           WHERE  host = '%s'           AND    thread_id = 0",
-    "SQL:dn/ns/WK_IPADDRESS"
+    WK_EMAIL,
+    A_IY,
+    C_IT,
+    "SELECT object_id           FROM   irt_nfy           WHERE  irt_nfy = '%s'           AND    thread_id = 0",
+    "SQL:it/iy/WK_EMAIL"
     },
   {
     R_SQL,
-    Q_INVERSE,
-    WK_MNTNER,
-    A_ML,
-    C_ANY,
-    "SELECT i.object_id           FROM   mntner, mnt_lower i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner  = '%s'           AND    i.thread_id = 0",
-    "SQL:ANY/ml/WK_MNTNER"
+    Q_LOOKUP,
+    WK_PURPOSE,
+    A_PU,
+    C_PU,
+    "SELECT object_id           FROM   purpose           WHERE  purpose = '%s'           AND    thread_id = 0",
+    "SQL:pu/pu/WK_PURPOSE"
     },
   {
     R_SQL,
-    Q_INVERSE,
-    WK_NIC_HDL,
-    A_TC,
-    C_ANY,
-    "SELECT i.object_id           FROM   tech_c i, person_role           WHERE  i.pe_ro_id = person_role.object_id           AND    person_role.nic_hdl  = '%s' 	  AND	 i.thread_id = 0",
-    "SQL:ANY/tc/WK_NIC_HDL"
+    Q_LOOKUP,
+    WK_PEERINGSET,
+    A_PS,
+    C_PS,
+    "SELECT object_id         FROM   peering_set         WHERE  peering_set='%s'         AND    thread_id=0",
+    "SQL:ps/ps/WK_PEERINGSET"
+    },
+  {
+    R_SQL,
+    Q_LOOKUP,
+    WK_NAME,
+    A_RO,
+    C_RO,
+    "SELECT N00.object_id           FROM   %s           WHERE  %s           AND    N00.object_type = 11           AND    N00.thread_id = 0",
+    "SQL:ro/ro/WK_NAME"
     },
   {
     R_SQL,
@@ -273,146 +345,65 @@
   {
     R_SQL,
     Q_LOOKUP,
-    WK_IRT,
-    A_IT,
-    C_IT,
-    "SELECT object_id           FROM   irt           WHERE  irt = '%s'           AND    thread_id=0",
-    "SQL:it/it/WK_IRT"
+    WK_ROUTESETNAME,
+    A_RS,
+    C_RS,
+    "SELECT object_id           FROM   route_set           WHERE  route_set = '%s'           AND    thread_id = 0",
+    "SQL:rs/rs/WK_ROUTESETNAME"
     },
   {
     R_SQL,
     Q_INVERSE,
     WK_NIC_HDL,
-    A_CN,
+    A_ZC,
     C_ANY,
-    "SELECT i.object_id           FROM   person_role, cross_nfy i           WHERE  person_role.object_id = i.pe_ro_id           AND    person_role.nic_hdl  = '%s'           AND    i.thread_id = 0",
-    "SQL:ANY/cn/WK_NIC_HDL"
-    },
-  {
-    R_SQL,
-    Q_INVERSE,
-    WK_IRT,
-    A_MI,
-    C_ANY,
-    "SELECT b.object_id           FROM   irt a, mnt_irt b           WHERE  a.object_id = b.irt_id           AND    a.irt = '%s'           AND    b.thread_id = 0",
-    "SQL:ANY/mi/WK_IRT"
+    "SELECT i.object_id           FROM   zone_c i, person_role           WHERE  i.pe_ro_id = person_role.object_id           AND    person_role.nic_hdl  = '%s'           AND    i.thread_id = 0",
+    "SQL:ANY/zc/WK_NIC_HDL"
     },
   {
     R_RADIX,
     Q_LOOKUP,
-    WK_IP6PREFIX,
-    A_I6,
-    C_I6,
+    WK_IPRANGE,
+    A_RT,
+    C_RT,
     "",
-    "RADIX:i6/WK_IP6PREFIX"
-    },
-  {
-    R_SQL,
-    Q_INVERSE,
-    WK_DOMAIN,
-    A_RZ,
-    C_IN,
-    "SELECT object_id           FROM   rev_srv           WHERE  rev_srv = '%s'           AND    thread_id = 0",
-    "SQL:in/rz/WK_DOMAIN"
-    },
-  {
-    R_SQL,
-    Q_INVERSE,
-    WK_DOMAIN,
-    A_RZ,
-    C_I6,
-    "SELECT object_id           FROM   rev_srv           WHERE  rev_srv = '%s'           AND    thread_id = 0",
-    "SQL:i6/rz/WK_DOMAIN"
-    },
-  {
-    R_SQL,
-    Q_INVERSE,
-    WK_MNTNER,
-    A_MU,
-    C_ANY,
-    "SELECT i.object_id           FROM   mntner, mnt_routes i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner  = '%s'",
-    "SQL:ANY/mu/WK_MNTNER"
-    },
-  {
-    R_SQL,
-    Q_INVERSE,
-    WK_DOMAIN,
-    A_SD,
-    C_DN,
-    "SELECT object_id           FROM   sub_dom           WHERE  domain = '%s'           AND    thread_id = 0",
-    "SQL:dn/sd/WK_DOMAIN"
-    },
-  {
-    R_SQL,
-    Q_LOOKUP,
-    WK_FILTERSET,
-    A_FS,
-    C_FS,
-    "SELECT object_id 	FROM   filter_set  	WHERE  filter_set='%s' 	AND    thread_id=0",
-    "SQL:fs/fs/WK_FILTERSET"
+    "RADIX:rt/WK_IPRANGE"
     },
   {
-    R_SQL,
+    R_RADIX,
     Q_LOOKUP,
-    WK_LIMERICK,
-    A_LI,
-    C_LI,
-    "SELECT object_id           FROM   limerick           WHERE  limerick = '%s'           AND    thread_id = 0",
-    "SQL:li/li/WK_LIMERICK"
+    WK_IPPREFIX,
+    A_RT,
+    C_RT,
+    "",
+    "RADIX:rt/WK_IPPREFIX"
     },
   {
-    R_SQL,
+    R_RADIX,
     Q_LOOKUP,
     WK_IPADDRESS,
-    A_IF,
-    C_IR,
-    "SELECT object_id           FROM   ifaddr           WHERE  ifaddr >= %u           AND    ifaddr <= %u           AND    thread_id = 0",
-    "SQL:ir/if/WK_IPADDRESS"
-    },
-  {
-    R_SQL,
-    Q_INVERSE,
-    WK_AUTNUM,
-    A_OR,
+    A_RT,
     C_RT,
-    "SELECT object_id           FROM   route           WHERE  origin = '%s'           AND    thread_id = 0",
-    "SQL:rt/or/WK_AUTNUM"
-    },
-  {
-    R_SQL,
-    Q_LOOKUP,
-    WK_PEERINGSET,
-    A_PS,
-    C_PS,
-    "SELECT object_id         FROM   peering_set         WHERE  peering_set='%s'         AND    thread_id=0",
-    "SQL:ps/ps/WK_PEERINGSET"
+    "",
+    "RADIX:rt/WK_IPADDRESS"
     },
   {
     R_SQL,
     Q_INVERSE,
-    WK_EMAIL,
-    A_IY,
-    C_IT,
-    "SELECT object_id           FROM   irt_nfy           WHERE  irt_nfy = '%s'           AND    thread_id = 0",
-    "SQL:it/iy/WK_EMAIL"
+    WK_MNTNER,
+    A_CT,
+    C_ANY,
+    "SELECT i.object_id           FROM   mntner, cross_mnt i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner = '%s'           AND    i.thread_id = 0",
+    "SQL:ANY/ct/WK_MNTNER"
     },
   {
     R_SQL,
     Q_INVERSE,
-    WK_EMAIL,
-    A_NY,
+    WK_IRT,
+    A_MI,
     C_ANY,
-    "SELECT object_id           FROM   notify i           WHERE  i.notify = '%s' 	  AND	 i.thread_id = 0",
-    "SQL:ANY/ny/WK_EMAIL"
-    },
-  {
-    R_SQL,
-    Q_LOOKUP,
-    WK_RTRSET,
-    A_IS,
-    C_IS,
-    "SELECT object_id         FROM   rtr_set         WHERE  rtr_set='%s'         AND    thread_id=0",
-    "SQL:is/is/WK_RTRSET"
+    "SELECT b.object_id           FROM   irt a, mnt_irt b           WHERE  a.object_id = b.irt_id           AND    a.irt = '%s'           AND    b.thread_id = 0",
+    "SQL:ANY/mi/WK_IRT"
     },
   {
     R_SQL,
@@ -461,21 +452,21 @@
     },
   {
     R_SQL,
-    Q_LOOKUP,
+    Q_INVERSE,
     WK_MNTNER,
-    A_MT,
-    C_MT,
-    "SELECT object_id           FROM   mntner           WHERE  mntner = '%s'           AND    thread_id = 0",
-    "SQL:mt/mt/WK_MNTNER"
+    A_MU,
+    C_ANY,
+    "SELECT i.object_id           FROM   mntner, mnt_routes i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner  = '%s'",
+    "SQL:ANY/mu/WK_MNTNER"
     },
   {
     R_SQL,
-    Q_INVERSE,
-    WK_AUTNUM,
-    A_LA,
-    C_IR,
-    "SELECT object_id           FROM   inet_rtr           WHERE  local_as  = '%s'           AND    thread_id = 0",
-    "SQL:ir/la/WK_AUTNUM"
+    Q_LOOKUP,
+    WK_ASSETNAME,
+    A_AS,
+    C_AS,
+    "SELECT object_id           FROM   as_set           WHERE  as_set = '%s'           AND    thread_id = 0",
+    "SQL:as/as/WK_ASSETNAME"
     },
   {
     R_SQL,
@@ -497,21 +488,129 @@
     },
   {
     R_SQL,
+    Q_INVERSE,
+    WK_EMAIL,
+    A_MN,
+    C_MT,
+    "SELECT object_id           FROM   mnt_nfy           WHERE  mnt_nfy = '%s'           AND    thread_id = 0",
+    "SQL:mt/mn/WK_EMAIL"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_NIC_HDL,
+    A_AC,
+    C_ANY,
+    "SELECT i.object_id           FROM   admin_c i, person_role           WHERE  i.pe_ro_id = person_role.object_id           AND    person_role.nic_hdl  = '%s' 	  AND	 i.thread_id = 0",
+    "SQL:ANY/ac/WK_NIC_HDL"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_REGID,
+    A_RG,
+    C_ANY,
+    "SELECT i.object_id           FROM   reg_id, reg_ref i           WHERE  reg_id.object_id = i.reg_id           AND    reg_id.reg_id  = '%s'           AND    i.thread_id = 0",
+    "SQL:ANY/rg/WK_REGID"
+    },
+  {
+    R_SQL,
     Q_LOOKUP,
-    WK_ROUTESETNAME,
-    A_RS,
-    C_RS,
-    "SELECT object_id           FROM   route_set           WHERE  route_set = '%s'           AND    thread_id = 0",
-    "SQL:rs/rs/WK_ROUTESETNAME"
+    WK_NAME,
+    A_PN,
+    C_PN,
+    "SELECT N00.object_id           FROM   %s           WHERE  %s           AND    N00.object_type = 10           AND    N00.thread_id = 0",
+    "SQL:pn/pn/WK_NAME"
+    },
+  {
+    R_SQL,
+    Q_LOOKUP,
+    WK_TICKET,
+    A_TK,
+    C_TK,
+    "SELECT object_id           FROM   ticket           WHERE  ticket = '%s' 	  AND	 thread_id = 0",
+    "SQL:tk/tk/WK_TICKET"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_MNTNER,
+    A_RB,
+    C_ANY,
+    "SELECT i.object_id           FROM   mntner, referral_by i           WHERE  mntner.object_id = i.mnt_id           AND    mntner.mntner = '%s'           AND    i.thread_id = 0",
+    "SQL:ANY/rb/WK_MNTNER"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_PURPOSE,
+    A_UF,
+    C_PU,
+    "SELECT i.object_id           FROM   purpose, purp_ref i           WHERE  purpose.object_id = i.purp_id           AND    purpose.purpose  = '%s'           AND    i.thread_id = 0",
+    "SQL:pu/uf/WK_PURPOSE"
+    },
+  {
+    R_SQL,
+    Q_LOOKUP,
+    WK_REGID,
+    A_RI,
+    C_RI,
+    "SELECT object_id           FROM   reg_id           WHERE  reg_id = '%s' 	  AND	 thread_id = 0",
+    "SQL:ri/ri/WK_REGID"
+    },
+  {
+    R_SQL,
+    Q_LOOKUP,
+    WK_IRT,
+    A_IT,
+    C_IT,
+    "SELECT object_id           FROM   irt           WHERE  irt = '%s'           AND    thread_id=0",
+    "SQL:it/it/WK_IRT"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_AUTNUM,
+    A_OR,
+    C_RT,
+    "SELECT object_id           FROM   route           WHERE  origin = '%s'           AND    thread_id = 0",
+    "SQL:rt/or/WK_AUTNUM"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_DOMAIN,
+    A_SD,
+    C_DN,
+    "SELECT object_id           FROM   sub_dom           WHERE  domain = '%s'           AND    thread_id = 0",
+    "SQL:dn/sd/WK_DOMAIN"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_DOMAIN,
+    A_NS,
+    C_DN,
+    "SELECT object_id           FROM   nserver           WHERE  host = '%s'           AND    thread_id = 0",
+    "SQL:dn/ns/WK_DOMAIN"
+    },
+  {
+    R_SQL,
+    Q_INVERSE,
+    WK_IPADDRESS,
+    A_NS,
+    C_DN,
+    "SELECT object_id           FROM   nserver           WHERE  host = '%s'           AND    thread_id = 0",
+    "SQL:dn/ns/WK_IPADDRESS"
     },
   {
     R_SQL,
     Q_INVERSE,
     WK_EMAIL,
-    A_DT,
-    C_MT,
-    "SELECT object_id           FROM   upd_to           WHERE  upd_to = '%s'           AND    thread_id = 0",
-    "SQL:mt/dt/WK_EMAIL"
+    A_NY,
+    C_ANY,
+    "SELECT object_id           FROM   notify i           WHERE  i.notify = '%s' 	  AND	 i.thread_id = 0",
+    "SQL:ANY/ny/WK_EMAIL"
     },
   {
     0,
Index: include/UD_queries.def
diff -Nau include/UD_queries.def.orig include/UD_queries.def
--- include/UD_queries.def.orig	2003-08-05 16:24:11.000000000 +0200
+++ include/UD_queries.def	2004-03-18 13:01:33.520201000 +0100
@@ -80,6 +80,24 @@
   {UD_LEAF_, " INSERT irt_nfy         SET thread_id=%d, object_id=%ld, irt_nfy='%s' "},
   {UD_NULL_, ""},
   {UD_NULL_, ""},
+  {UD_MAIN_, " INSERT reg_id         SET thread_id=%d, object_id=%ld, reg_id='%s', reg_window=0 "},
+  {UD_MA_U2, " UPDATE %s SET thread_id=%d, reg_window='%s' 	  WHERE object_id=%ld "},
+  {UD_AUX__, " INSERT as_ref         SELECT %d, %ld, aut_num.object_id, %d         FROM aut_num         WHERE aut_num.aut_num='%s' "},
+  {UD_MAIN_, " INSERT pop         SET thread_id=%d, object_id=%ld, pop='%s', remedyref='fresh_insert' "},
+  {UD_MA_U2, " UPDATE %s SET thread_id=%d, remedyref='%s'           WHERE object_id=%ld "},
+  {UD_MAIN_, " INSERT ticket         SET thread_id=%d, object_id=%ld, ticket='%s', netname='-' "},
+  {UD_AUX__, " INSERT reg_ref         SELECT %d, %ld, reg_id.object_id, %d         FROM reg_id         WHERE reg_id.reg_id='%s' "},
+  {UD_AUX__, " INSERT pop_ref         SELECT %d, %ld, pop.object_id, %d         FROM pop         WHERE pop.pop='%s' "},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_MAIN_, " INSERT purpose         SET thread_id=%d, object_id=%ld, purpose='%s' "},
+  {UD_MA_IN, " INSERT range         SET thread_id=%d, object_id=%ld, begin_in=%u, end_in=%u "},
+  {UD_AUX__, " INSERT purp_ref         SELECT %d, %ld, purpose.object_id, %d         FROM purpose         WHERE purpose.purpose='%s' "},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
   {0, NULL}
 }; /* Insert */
 
@@ -165,6 +183,24 @@
   {UD_LEAF_, " UPDATE irt_nfy         SET thread_id=%d         WHERE object_id=%ld         AND irt_nfy='%s' "},
   {UD_NULL_, ""},
   {UD_NULL_, ""},
+  {UD_MAIN_, ""},
+  {UD_MA_U2, " UPDATE %s SET thread_id=%d, reg_window='%s' 	  WHERE object_id=%ld "},
+  {UD_AX_AX, " UPDATE as_ref         SET thread_id=%d         WHERE object_id=%ld         AND   as_id=%ld "},
+  {UD_MAIN_, ""},
+  {UD_MA_U2, " UPDATE %s SET thread_id=%d, remedyref='%s'           WHERE object_id=%ld "},
+  {UD_MAIN_, ""},
+  {UD_AX_RG, " UPDATE reg_ref         SET thread_id=%d         WHERE object_id=%ld         AND   reg_id=%ld "},
+  {UD_AX_PP, " UPDATE pop_ref         SET thread_id=%d         WHERE object_id=%ld         AND   pop_id=%ld "},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_MAIN_, ""},
+  {UD_MAIN_, ""},
+  {UD_AX_PU, " UPDATE purp_ref         SET thread_id=%d         WHERE object_id=%ld         AND   purp_id=%ld "},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
   {0, NULL}
 }; /* Update */
 
@@ -250,6 +286,24 @@
   {UD_NULL_, ""},
   {UD_NULL_, ""},
   {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
   {0, NULL}
 }; /* Dummy */
 
@@ -335,6 +389,24 @@
   {UD_NULL_, ""},
   {UD_NULL_, ""},
   {UD_NULL_, ""},
+  {UD_MAIN_, " reg_id='%s' AND "},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_MAIN_, " pop='%s' AND "},
+  {UD_NULL_, ""},
+  {UD_MAIN_, " ticket='%s' AND "},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_MAIN_, " purpose='%s' AND "},
+  {UD_MA_IN, " begin_in=%u AND end_in=%u AND "},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
+  {UD_NULL_, ""},
   {0, NULL}
 }; /* Select */
 
Index: modules/qc/query_command.c
diff -Nau modules/qc/query_command.c.orig modules/qc/query_command.c
--- modules/qc/query_command.c.orig	2003-07-03 09:55:33.000000000 +0200
+++ modules/qc/query_command.c	2003-12-12 04:38:18.300001000 +0100
@@ -824,11 +824,12 @@
                  MA_not(query_command->object_type_bitmap);
         }
 
-        /* XXX: missing checks for "-i" and "-T" versus key types */
+        /* XXX: missing checks for "-i" and "-T" versus key types AV */
 
         is_ip_key = MA_isset(query_command->keytypes_bitmap, WK_IPADDRESS) ||
-	            MA_isset(query_command->keytypes_bitmap, WK_IPRANGE) ||
-	            MA_isset(query_command->keytypes_bitmap, WK_IPPREFIX) ||
+	            MA_isset(query_command->keytypes_bitmap, WK_IPRANGE)   ||
+	            MA_isset(query_command->keytypes_bitmap, WK_IPPREFIX)  ||
+	            MA_isset(query_command->keytypes_bitmap, WK_RANGE   )  ||
 	            MA_isset(query_command->keytypes_bitmap, WK_IP6PREFIX);
 
         /* check for use of IP flags on non-IP lookups */
Index: modules/qi/query_instructions.c
diff -Nau modules/qi/query_instructions.c.orig modules/qi/query_instructions.c
--- modules/qi/query_instructions.c.orig	2003-07-03 09:55:34.000000000 +0200
+++ modules/qi/query_instructions.c	2003-12-12 05:14:05.410008000 +0100
@@ -396,7 +396,7 @@
       create_name_query(result_buff, q.query, qc->keys);
       addquery = 1;
     }
-    else if( q.keytype == WK_IPADDRESS ) {  /* ifaddr sql lookups */
+    else if( q.keytype == WK_IPADDRESS ||  q.keytype == WK_RANGE ) {  /* AV ifaddr sql lookups */
       ip_range_t myrang;
       unsigned   begin, end;
       ip_keytype_t key_type;
@@ -2104,6 +2104,10 @@
 static int valid_query(const Query_command *qc, const Query_t q) {
   int result=0;
 
+  if (q.keytype == WK_REGID || q.keytype == WK_POP   ||
+      q.keytype == WK_TICKET|| q.keytype == WK_RANGE ||
+      q.keytype == WK_PURPOSE                           ) return 1;
+
   if (MA_isset(qc->keytypes_bitmap, q.keytype) == 1) {
     if (q.query != NULL) {
       switch (q.querytype) {
Index: modules/rp/rp_load.c
diff -Nau modules/rp/rp_load.c.orig modules/rp/rp_load.c
--- modules/rp/rp_load.c.orig	2003-07-03 09:55:36.000000000 +0200
+++ modules/rp/rp_load.c	2003-12-12 04:50:54.680003000 +0100
@@ -61,6 +61,7 @@
   pack->type = attr;
   pack->d.origin = NULL;
   switch( attr ) {
+  case A_RA:	/* AV Range Object */
   case A_IN:
     /*
       read 0-2 from inetnum
@@ -254,7 +255,7 @@
 
   dieif ( SQ_execute_query(con, "LOCK TABLES     " 
      "route READ, inetnum READ, inet6num READ,   "
-     "inaddr_arpa READ, domain READ, ip6int READ ",
+     "inaddr_arpa READ, domain READ, ip6int READ, range READ ",
 			   NULL) == -1 );
 
   do {
@@ -264,6 +265,9 @@
     if( !NOERR(err=RP_sql_load_attr_space( A_IN, IP_V4, reg_id, con))) {
       break;
     }
+    if( !NOERR(err=RP_sql_load_attr_space( A_RA, IP_V4, reg_id, con))) {
+      break;
+    }
 #ifndef NO_A_I6
     if( !NOERR(err=RP_sql_load_attr_space( A_I6, IP_V6, reg_id, con))) {
       break;
Index: modules/rp/rp_tree.c
diff -Nau modules/rp/rp_tree.c.orig modules/rp/rp_tree.c
--- modules/rp/rp_tree.c.orig	2003-07-03 09:55:36.000000000 +0200
+++ modules/rp/rp_tree.c	2003-12-12 04:56:27.790002000 +0100
@@ -201,7 +201,8 @@
   if(    NOERR(err=rp_init_attr_tree(reg_id, A_IN))
       && NOERR(err=rp_init_attr_tree(reg_id, A_RT))
       && NOERR(err=rp_init_attr_tree(reg_id, A_I6))
-      && NOERR(err=rp_init_attr_tree(reg_id, A_DN)) ) {
+      && NOERR(err=rp_init_attr_tree(reg_id, A_DN))
+      && NOERR(err=rp_init_attr_tree(reg_id, A_RA)) ) {	/* AV Init range 2 */
     return RP_OK;
   }
   
Index: modules/ud/ud_core.c
diff -Nau modules/ud/ud_core.c.orig modules/ud/ud_core.c
--- modules/ud/ud_core.c.orig	2003-07-03 09:55:49.000000000 +0200
+++ modules/ud/ud_core.c	2003-12-12 04:59:20.420009000 +0100
@@ -654,6 +654,13 @@
 /* Determine the attribute type */
   attribute_type = rpsl_get_attr_id(rpsl_attr_get_name(attribute));
 /* Get attribute value .It is already clean since we process the flattened copy of the object */
+
+  /* This is kind of ugly but the only possebility for a fast solution */
+  /* Never allow dummy for reg-id, pop and ticket                  AV  */
+  if(attribute_type==A_AX || attribute_type==A_RG || 
+     attribute_type==A_TK || attribute_type==A_PF ||
+     attribute_type==A_UF ) return 1;
+
   attribute_value = rpsl_attr_get_value(attribute);
 
   query_fmt = DF_get_dummy_query(attribute_type);
@@ -917,6 +924,22 @@
       		 	 	get_ref_id(tr, "mntner", "mntner", attribute_value, condition));
       		 	}
 			break;
+	 case UD_AX_AX: /* Update as_ref reference AV */
+	                g_string_sprintf(tr->query, query_fmt, tr->thread_upd, tr->object_id,
+			        get_ref_id(tr, "aut_num", "aut_num", attribute_value, NULL));
+	                break;
+	 case UD_AX_RG: /* Update reg_ref reference AV */
+	                g_string_sprintf(tr->query, query_fmt, tr->thread_upd, tr->object_id,
+			        get_ref_id(tr, "reg_id", "reg_id", attribute_value, NULL));
+	                break;
+	 case UD_AX_PP: /* Update pop reference AV */
+	                g_string_sprintf(tr->query, query_fmt, tr->thread_upd, tr->object_id,
+			        get_ref_id(tr, "pop", "pop", attribute_value, NULL));
+	                break;
+	 case UD_AX_PU: /* Update purpose reference AV */
+	                g_string_sprintf(tr->query, query_fmt, tr->thread_upd, tr->object_id,
+			        get_ref_id(tr, "purpose", "purpose", attribute_value, NULL));
+	                break;
 	 case UD_LEAF_: 
 	 		g_string_sprintf(tr->query, query_fmt, tr->thread_upd, tr->object_id, attribute_value);
 			break;
@@ -1144,8 +1167,19 @@
    		}
    		break;         	    		
    case UD_AUX__: /* for AUX tables*/
-    		g_string_sprintf(tr->query, query_fmt, tr->thread_ins, tr->object_id, tr->class_type, attribute_value);
-    		if(!IS_DUMMY_ALLOWED(tr->mode))g_string_sprintfa(tr->query, " AND dummy=0 ");
+                /* AV Never create dummys for this attributes */
+		if(attribute_type==A_AX || attribute_type==A_RG || 
+		   attribute_type==A_TK || attribute_type==A_PF || 
+		   attribute_type==A_UF ) 
+		{
+		    g_string_sprintf(tr->query, query_fmt, tr->thread_ins, tr->object_id, 
+		    tr->class_type, attribute_value);
+		}
+		else {
+		  g_string_sprintf(tr->query, query_fmt, tr->thread_ins, tr->object_id, 
+				   tr->class_type, attribute_value);
+		  if(!IS_DUMMY_ALLOWED(tr->mode))g_string_sprintfa(tr->query, " AND dummy=0 ");
+		}
     		break;
    case UD_AX_MO: /* for member_of table*/
 		set_name = get_set_name(tr->class_type);
Index: modules/ud/ud_rx.c
diff -Nau modules/ud/ud_rx.c.orig modules/ud/ud_rx.c
--- modules/ud/ud_rx.c.orig	2003-07-03 09:55:49.000000000 +0200
+++ modules/ud/ud_rx.c	2003-12-11 03:58:26.000002000 +0100
@@ -44,6 +44,7 @@
 const gchar *attribute_value;
 
  switch(attribute_type){
+   case A_RA: /* AV range object */
    case A_IN:
    case A_RT:
    case A_I6:    
Index: modules/rp/rp_convert.c
diff -Nau modules/rp/rp_convert.c.orig modules/rp/rp_convert.c
--- modules/rp/rp_convert.c.orig	2004-05-28 16:12:55.000000000 +0200
+++ modules/rp/rp_convert.c	2004-05-28 16:09:53.000000000 +0200
@@ -70,6 +70,7 @@
   int   conv;
   rx_fam_t   fam_id = RP_attr2fam( attr );
   switch( attr ) {
+  case A_RA:
   case A_IN:
     conv = IP_rang_e2b(&(uni->u.in), astr);
     break;
