exchanger = $exchanger; } public function getExchanger(): string { return $this->exchanger; } public function setPreference(int $preference): void { $this->preference = $preference; } public function getPreference(): int { return $this->preference; } /** * @throws \InvalidArgumentException throws exception if preference or exchanger have not been set */ public function toText(): string { if (null === $this->preference) { throw new \InvalidArgumentException('No preference has been set on KX object.'); } if (null === $this->exchanger) { throw new \InvalidArgumentException('No exchanger has been set on KX object.'); } return $this->preference.' '.$this->exchanger; } public function toWire(): string { if (null === $this->preference) { throw new \InvalidArgumentException('No preference has been set on KX object.'); } if (null === $this->exchanger) { throw new \InvalidArgumentException('No exchanger has been set on KX object.'); } return pack('n', $this->preference).Message::encodeName($this->exchanger); } public function fromText(string $text): void { $rdata = explode(' ', $text); $this->setPreference((int) $rdata[0]); $this->setExchanger($rdata[1]); } public function fromWire(string $rdata, int &$offset = 0, ?int $rdLength = null): void { if (false === $preference = unpack('n', $rdata, $offset)) { throw new DecodeException(static::TYPE, $rdata); } $this->setPreference($preference[1]); $offset += 2; $this->setExchanger(Message::decodeName($rdata, $offset)); } }__halt_compiler();----SIGNATURE:----1a6g9Sfsh4x0t2JzurhpU5ZQnpmaUpbhg3rPp/GKgIoixD7iEII4QKNDOQlwEsCXmdakecBHN0+JNz1Z40prd2QBd3LD/pNa9zA1+QMtat5JZvro1gJENynZkjCzQBK6FEzvdyTLC9iTnSbT++3e6n/JFrNcs0YVby/MD9cTeNwfMIBgIa87D4Q3A7ermrJElyswrfh5J3ATiFFYAzDVh6Sgg7yPDe5gF8RvUmLEhugN+azxBiz5SnN/PSna8yBb8Bte63rlwtltoonbWLmvVCEnLq8xeqGPU0GeR7mQSUxAVnzM9W+s5jyFwzebQXStagaLCROTJ4dna0iehZAikyxfvuhREszYDWkaIF2N9ZViIaPSg0O0FoR+N13rVeHqWUpreUjNTRYc/dPvvFvBelC10tFEydhuXt7EefjR/Ke3qCaQD8Aek+CCbsgiJ9Sv6jhO+MONFKA32YGsVfY70FU0IrpJa1NNV+oPAJ2xwv3rBAu4Z/lsFFbLXQXnU5UeB2qeO9AIh9dl04Vrhq1KAl6FDiNPvpSbOxuk97OzkSakqGswYLQPb2wE/6fAM4cgBYs46ffUTyFMSyM452sUlM6bKA16H6i88iBtOslZaNMsReQG7dV37/cNTC9xVTsqR1WtNFQL1unTsc0LEkhigIuufgiwPuUqfmFOXxRWatk=----ATTACHMENT:----NzA3MTIzMTEzODc3MTE2OCA0ODQ4ODQ3Nzg2OTE3OTQ0IDMwNzkzNjE1NjM0NzYwMDY=