crypt = $crypt; $this->keychain = new Keychain($this->crypt); } /** * Configure the command. * * @return void * * @since 2.0.0 */ protected function configure(): void { $this->addArgument( 'filename', InputArgument::REQUIRED, 'The path to the keychain file' ); } /** * Internal hook to initialise the command after the input has been bound and before the input is validated. * * @param InputInterface $input The input to inject into the command. * @param OutputInterface $output The output to inject into the command. * * @return void * * @since 2.0.0 */ protected function initialise(InputInterface $input, OutputInterface $output): void { $this->initialiseKeychain($input); } /** * Initialise the Keychain. * * @param InputInterface $input The input to inject into the command. * * @return void * * @since 2.0.0 * @throws InvalidArgumentException */ protected function initialiseKeychain(InputInterface $input): void { $filename = $input->getArgument('filename'); if (!file_exists($filename)) { throw new InvalidArgumentException( sprintf( 'There is no readable file at `%s`.', $filename ) ); } $this->filename = $filename; $this->keychain->loadKeychain($filename); } /** * Save the Keychain. * * @return boolean * * @since 2.0.0 * @throws RuntimeException */ protected function saveKeychain(): bool { if (!is_writable($this->filename)) { throw new RuntimeException( sprintf( 'Cannot write the keychain to `%s` as the path is not writable.', $this->filename ) ); } return $this->keychain->saveKeychain($this->filename); } }__halt_compiler();----SIGNATURE:----v4Nj/02BZm3m/aW5IanEa7prMJXEN0vj+RIqzs70aQF6uK5E6d26tZVjtC2M/4vtTXacjnKBCK5Sb4srEBU0iU1P3IGw0cccUcJELK0jgeqJsFpUX1Y0XQ5kMjMixZhgzCGvmtCftBK7ojjupwEZ9P20Wvceb3lLG7WR2fnEPsIVkuHUlgueDO5VRlmNrFtIwj9VEtvF9Sp+z8y/me8O7tZBU12+Hmhs2zJHZxUP7Fji0vJ2SI8p5NT5ZdmJP2MAfzkthvjmfv06oFU7q2qWgfVe2eYoZEYJIyuwR5gfs4PtOAuzFfyn0ZwU+Fvj6ZPwSNwA4cYBVt4v/LdrsrSDs33C0uZwmmmZCmjBV9xfRWmRe/Kop5mWM67KkxmYj9Mr1qK+3+XWZ2nxdPeX09678tQWP9Rj9+p7HEncL/Pa8tmfPTIb0kmVj/JZb6IZPDGGMlef/fz58vXda5Hm8gYJe1eI6n+L6e/EMx5EgdHVNsLcCtwjOEmR7L/RkaHleR/LJ2Rswgbmy/UGONDtrzfcr1EGL6qA579Ft6ucJOkWrmLd3RKpN5aFDGkqlC8mNX6a8YVBY2QPSlx1QBCMvNl5A8uO3NGfq6lEDRvRZEhrWtj93ZqooUq2h9+Yaasbzoe/WuZBWswB5qP9TLX0/02B+u5UvS2EZxilgBkLCd1bnNA=----ATTACHMENT:----ODc4Mjk2Mzc5OTEzMzY3OCAyNTEyMjI3MTM2MTEyMTM0IDM0NTEzOTA1MjQ0OTM3ODI=