function __construct($version, $hostname, $community, $security = null)
 {
     switch ($version) {
         case "1":
         case "v1":
             $version = parent::VERSION_1;
             break;
         case "2":
         case "2c":
         case "v2c":
             $version = parent::VERSION_2c;
             break;
         case "3":
         case "v3":
             $version = parent::VERSION_3;
             break;
     }
     parent::__construct($version, $hostname, $community);
     if ($version == SNMP::VERSION_3) {
         if ($security !== null && count($security) == 9) {
             $auth_passphrase = base64_decode($security[6]);
             $priv_passphrase = base64_decode($security[8]);
             if (!$this->setsecurity($security[4], $security[5], $auth_passphrase, $security[7], $priv_passphrase)) {
                 $this->error = "Security Error for v3 ({$hostname})";
                 return;
             }
         } else {
             $this->error = "Missing security settings for v3 ({$hostname})";
             return;
         }
     }
     $this->quick_print = 1;
     $this->oid_output_format = SNMP_OID_OUTPUT_NUMERIC;
 }