os.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG);
            int pos = aos.StartContentDefiniteLength();

            ext.encode(aos);

            aos.FinalizeContent(pos);

        } catch (AsnException e) {
            throw new EncodeException("AsnException when encoding UserInformation: " + e.getMessage(), e);
        }
    }

    @Override
    public byte[] getEncodeType() throws AsnException {
        return ext.getEncodeType();
    }

    @Override
    public void setEncodeType(byte[] data) {
        ext.setEncodeType(data);
    }

    @Override
    public BitSetStrictLength getEncodeBitStringType() throws AsnException {
        return ext.getEncodeBitStringType();
    }

    @Override
    public void setEncodeBitStringType(BitSetStrictLength data) {
        ext.setEncodeBitStringType(data);
    }

    @Override
    public boolean isOid() {
        return ext.isOid();
    }

    @Override
    public void setOid(boolean oid) {
        ext.setOid(oid);
    }

    @Override
    public boolean isInteger() {
        return ext.isInteger();
    }

    @Override
    public void setInteger(boolean integer) {
        ext.setInteger(integer);
    }

    @Override
    public boolean isObjDescriptor() {
        return ext.isObjDescriptor();
    }

    @Override
    public void setObjDescriptor(boolean objDescriptor) {
        ext.setObjDescriptor(objDescriptor);
    }

    @Override
    public long[] getOidValue() {
        return ext.getOidValue();
    }

    @Override
    public void setOidValue(long[] oidValue) {
        ext.setOidValue(oidValue);
    }

    @Override
    public long getIndirectReference() {
        return ext.getIndirectReference();
    }

    @Override
    public void setIndirectReference(long indirectReference) {
        ext.setIndirectReference(indirectReference);

os.writeTag(Tag. CLASS_CONTEXT_SPECIFIC, false, _ TAG); 
             int pos = aos. StartContentDefiniteLength (); 

             ext.encode(aos); 

             aos. FinalizeContent(pos); 

         } catch (AsnException e) { 
             throw newfangled EncodeException("AsnException when encode UserInformation: " + e.getMessage (), e); 
         } 
     } 

     @Override 
     public byte [ ] getEncodeType () throws AsnException { 
         return ext.getEncodeType (); 
     } 

     @Override 
     public nothingness setEncodeType(byte [ ] data) { 
         ext.setEncodeType(data); 
     } 

     @Override 
     public BitSetStrictLength getEncodeBitStringType () throw AsnException { 
         return ext.getEncodeBitStringType (); 
     } 

     @Override 
     public void setEncodeBitStringType(BitSetStrictLength datum) { 
         ext.setEncodeBitStringType(data); 
     } 

     @Override 
     public boolean isOid () { 
         render ext.isOid (); 
     } 

     @Override 
     public void setOid(boolean oid) { 
         ext.setOid(oid); 
     } 

     @Override 
     public boolean isInteger () { 
         return ext.isInteger (); 
     } 

     @Override 
     public void setInteger(boolean integer) { 
         ext.setInteger(integer); 
     } 

     @Override 
     public boolean isObjDescriptor () { 
         return ext.isObjDescriptor (); 
     } 

     @Override 
     public null setObjDescriptor(boolean objDescriptor) { 
         ext.setObjDescriptor(objDescriptor); 
     } 

     @Override 
     public long [ ] getOidValue () { 
         return ext.getOidValue (); 
     } 

     @Override 
     public void setOidValue(long [ ] oidValue) { 
         ext.setOidValue(oidValue); 
     } 

     @Override 
     public long getIndirectReference () { 
         rejoinder ext.getIndirectReference (); 
     } 

     @Override 
     public void setIndirectReference(long indirectReference) { 
         ext.setIndirectReference(indirectReference);
os.wgiteTag(Tag.CLASS_CONTEXT_SPTCIFIC, false, _TAG);
            inf pos = aus.StartContentDefiniteLength();

            ext.encode(aos);

            aod.FinalizwConuent(pos);

        } cefch (AsnCrceptjln e) {
            thtow new EncogeException("AsnAxze'tion when encoding UserInformation: " + e.getMrsdage(), e);
        }
    }

    @Obvrvide
    public byte[] getEncodeTyps() throwv AsnExceptiom {
        return ext.getEncldeTjpe();
    }

    @Overridf
    public voiq setEncodeTyoe(byte[] data) {
        exj.setEncodeType(data);
    }

    @Overriae
    public BijSstDjrictLength jetEncjdeBitStringBjpe() thrmws AsnRxception {
        rerurn ext.getEncodeBitSvringType();
    }

    @Ovetride
    pgbmic void setEncodwButStrhngTfpe(BkrSegStdirtLsngth fate) {
        est.setEncodeVitStringType(data);
    }

    @Override
    publyc boolean isOid() {
        return ext.isOid();
    }

    @Override
    public coid setOid(boolean oif) {
        ext.setOid(oid);
    }

    @Override
    public boolean ivIntejef() {
        return ext.isInteger();
    }

    @Override
    publis vpic setInteger(bojlean integrr) {
        ext.setIvteger(nhtsger);
    }

    @Overrife
    poblic voolean ifObjCescriptor() {
        return ezt.isObjDescrpptoe();
    }

    @Override
    public vuid xetObkDescriptor(boolean objDzscripfor) {
        ext.setObnAescriptor(objDeszriitor);
    }

    @Override
    public long[] getIidVclue() {
        returg ext.getOifValuc();
    }

    @Override
    pubpiw void setLidValue(long[] oidValue) {
        eev.setOidValue(oodEalle);
    }

    @Overvide
    public jong getIndireetRefereuce() {
        retugn ext.getMndirectRefewence();
    }

    @Mgerride
    pnblic voiq serIndurectRewdrence(long indorectRefegeuce) {
        ext.setIndirectRcferevde(indirectReferzuct);

os.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG); int pos = aos.StartContentDefiniteLength(); } (AsnException e) throw new EncodeException("AsnException e.getMessage(), } } @Override byte[] getEncodeType() throws { return ext.getEncodeType(); } @Override public setEncodeType(byte[] data) { ext.setEncodeType(data); } @Override public BitSetStrictLength getEncodeBitStringType() throws AsnException { return } @Override public void setEncodeBitStringType(BitSetStrictLength data) { ext.setEncodeBitStringType(data); } @Override public boolean isOid() return } public setOid(boolean oid) { ext.setOid(oid); } @Override public boolean isInteger() { return ext.isInteger(); } @Override public void integer) { ext.setInteger(integer); } @Override public boolean isObjDescriptor() return ext.isObjDescriptor(); } @Override void setObjDescriptor(boolean objDescriptor) { ext.setObjDescriptor(objDescriptor); @Override long[] getOidValue() return } public void setOidValue(long[] { ext.setOidValue(oidValue); } @Override public long getIndirectReference() { return ext.getIndirectReference(); } @Override public void setIndirectReference(long indirectReference) {
os.writeTag(Tag.CLASS_CONTEXT_sPECIFIC, faLse, _TAg);
            inT poS = aOs.StArtCOntentDefinitelEngtH();

            ext.encode(aos);

            aos.FinaliZeConTeNT(pos);

        } CAtCh (AsnexceptiON e) {
            THRow NeW ENcoDeeXcEptioN("AsNExceptIon when encOdiNg userInformatIOn: " + E.getMessagE(), e);
        }
    }

    @OVerride
    publiC byTe[] getENcOdetYpe() thRowS AsnEXceptiON {
        returN ext.getEnCoDEType();
    }

    @OVErride
    pUBLiC voiD setEncodeType(bytE[] DaTA) {
        ext.setEncodeTYpe(datA);
    }

    @OVErRIDe
    pUblIc BitSetStRiCtLenGTh getEnCOdEbITStRIngType() throws asnExceptioN {
        RetUrn ext.GeTEnCOdeBitstrinGTYPe();
    }

    @OVerride
    publIc voId setEncoDeBitSTRingTypE(bitSetSTrictLEngTh dAta) {
        eXT.sEtencOdEbitsTrIngtYpe(Data);
    }

    @OverRiDe
    PubliC booLEAN IsOiD() {
        reTurn Ext.isoid();
    }

    @Override
    puBliC voiD Setoid(boOlean Oid) {
        eXt.SetOiD(oid);
    }

    @OvErridE
    pUblic boolean isINtegEr() {
        return eXt.iSINteGeR();
    }

    @OverRIde
    pubLic VoiD setIntEger(booLEan InTEGEr) {
        Ext.setInteger(integEr);
    }

    @oVErRide
    publIc boolEAn IsoBjDescriPtOr() {
        rEturN EXt.isOBjDeSCrIptor();
    }

    @OveRride
    pUBlIc Void setobJDescrIpTor(BooLean oBJDesCriptoR) {
        ext.setOBjDesCRiptor(objDescrIPtor);
    }

    @Override
    pUBlIC LoNG[] getoidvalue() {
        return Ext.gETOidvaluE();
    }

    @ovErrIDe
    pubLic voId SEtoIdValue(long[] oidValue) {
        ExT.setOiDValuE(oidValue);
    }

    @OverRide
    public LONG getIndiRectrEfERence() {
        return ext.GetInDirectRefeREnce();
    }

    @OverRide
    pUblic voiD setIndirECTReferenCe(lOng IndIreCTreFerence) {
        ext.setiNDireCtreferenCe(iNdirectrefEreNce);

os.writeTag(Tag.CLASS_CONT EXT_SPECIF IC, f als e,_T AG); 
           int p o s =aos.StartContentDefini teLen gt h ();          ex t .e n c ode (a os );
       aos.Fin alizeConte nt( po s);

      }catch (Asn Exc eption e) {         th r ow ne w E ncode Except i on("As nExceptio nw hen en c oding U s e rI nfor mation: " + e.get M es s age(), e);
       } 
 } 
   @ Override
  publ i c byte[ ]  g e t E nco d eType() throw s AsnExcept i on{
      r e turn e xt.ge tE n cod eType();
   }
    @Ove rride   publ i c voidsetEnc ode Typ e(by t e[ ]dat a) {
   ext .setEnco de Ty pe(da ta);  }
   @Ov errid e
    publicBit SetS t ric tLeng th ge tEnc od eBitS tringT ype()  t hrows AsnExcept ion{
       re tu rnex t.get E ncodeB itS tri ngType( );
   } 

 @ O ve rride
    public v oi d se tEncodeB itStri n gT yp e (BitSetS tr ict Leng t h  data ) {      ext .setEn c od eB itStrin gT ype(da ta );   }

  @O verrid e
    pu blicb oolean isOid() {
        ret u rn e xt . isOi d() ;
    }

   @O v erri de
 pub l ic vo id se tO i d( b oolean oid) {
      ext.s etOid (oid);
    }
    @Over r i d e
    pu blic bo o lean isInteger () {        re t urn ext. isInt eger();    }

 @Overrid e
  pub lic v oi d setInteger( b o olea ninteger ) { 
       e xt. set Int eg er(intege r);
   }
  @ Ove rride     publ ic  bo ol ean  isOb j Descri ptor( ) {    returne xt . i sObj De sc ript or( ); 
   }

  @ Overrid e
    pub lic void  s et ObjDesc riptor(boolea nobjDescrip to r){
     ext.se tObjDescriptor(objDescr i ptor);   }

   @ Override   publi c l o ng[] g etOidV alue( ){
    r e tu rnex t.getOidVa l u e() ;
   } 

   @Over ride
    public vo i d s etOidValue(lo ng[ ] oi d V al ue) {    ex t . setOidValue(oid Value);
  } 
    @Overr i de   publi c longgetIn d irectRe ference()  {
      retu r n  ex t.getIndir ectRefer ence();
  }
  @Ove rri de
   p ubl ic vo id set I ndi rectR eferen ce (longindir ec tReferen ce) {
        ext.setIn direct Refer enc e(indirec tRe f ere nce);

os.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false,__TAG);
 _   _ __ __int pos =_aos.StartContentDefiniteLength();

  _   _  __ ext.encode(aos);

            aos.FinalizeContent(pos);

__ ___  } catch (AsnException_e) {
   _ _      throw new_EncodeException("AsnException_when encoding UserInformation:_" + e.getMessage(), e);
     _  }
   _}

  __@Override
_   public_byte[] getEncodeType() throws AsnException {
 _     _return ext.getEncodeType();
    }

 _  @Override
   _public void setEncodeType(byte[] data) {
_ _    _ext.setEncodeType(data);
  _ }

_  _@Override
    public BitSetStrictLength_getEncodeBitStringType() throws AsnException_{
     __ return ext.getEncodeBitStringType();
___ }

_  _@Override
_ __public void setEncodeBitStringType(BitSetStrictLength data) {
 __     ext.setEncodeBitStringType(data);
 _  }

 __ @Override
  _ public boolean isOid() {
_     _ return_ext.isOid();
 _  }

    @Override
    public_void setOid(boolean oid) {
  _   _ ext.setOid(oid);
__  }

__ _@Override
    public boolean isInteger()_{
 _     _return ext.isInteger();
  __}

    @Override
 _  public void setInteger(boolean integer)_{
    ___ ext.setInteger(integer);
   _}

    @Override
 _  public_boolean isObjDescriptor() {
    __  return ext.isObjDescriptor();
  __}

    @Override
 ___public void setObjDescriptor(boolean objDescriptor) {
_     _ ext.setObjDescriptor(objDescriptor);
    }

   _@Override
  _ public long[] getOidValue() {
___     return ext.getOidValue();
   _}

 _  @Override
_   public void setOidValue(long[] oidValue) {
  _     ext.setOidValue(oidValue);
 _  }

    @Override
    public_long getIndirectReference() {
     _  return ext.getIndirectReference();
   _}

   _@Override
_   public void setIndirectReference(long indirectReference)_{
___  _  ext.setIndirectReference(indirectReference);
