require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&OPENSSL_UI_H)) {
    eval 'sub OPENSSL_UI_H () {1;}' unless defined(&OPENSSL_UI_H);
    require 'openssl/macros.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub HEADER_UI_H () {1;}' unless defined(&HEADER_UI_H);
    }
    require 'openssl/opensslconf.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_1_1_0)) {
	require 'openssl/crypto.ph';
    }
    require 'openssl/safestack.ph';
    require 'openssl/pem.ph';
    require 'openssl/types.ph';
    require 'openssl/uierr.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	if(defined(&OPENSSL_NO_UI_CONSOLE)) {
	    eval 'sub OPENSSL_NO_UI () {1;}' unless defined(&OPENSSL_NO_UI);
	}
    }
    if(defined(&__cplusplus)) {
    }
    eval 'sub UI_INPUT_FLAG_ECHO () {0x1;}' unless defined(&UI_INPUT_FLAG_ECHO);
    eval 'sub UI_INPUT_FLAG_DEFAULT_PWD () {0x2;}' unless defined(&UI_INPUT_FLAG_DEFAULT_PWD);
    eval 'sub UI_INPUT_FLAG_USER_BASE () {16;}' unless defined(&UI_INPUT_FLAG_USER_BASE);
    eval 'sub UI_CTRL_PRINT_ERRORS () {1;}' unless defined(&UI_CTRL_PRINT_ERRORS);
    eval 'sub UI_CTRL_IS_REDOABLE () {2;}' unless defined(&UI_CTRL_IS_REDOABLE);
    eval 'sub UI_set_app_data {
        my($s, $arg) = @_;
	    eval q( &UI_set_ex_data($s, 0, $arg));
    }' unless defined(&UI_set_app_data);
    eval 'sub UI_get_app_data {
        my($s) = @_;
	    eval q( &UI_get_ex_data($s, 0));
    }' unless defined(&UI_get_app_data);
    eval 'sub UI_get_ex_new_index {
        my($l, $p, $newf, $dupf, $freef) = @_;
	    eval q( &CRYPTO_get_ex_new_index( &CRYPTO_EX_INDEX_UI, $l, $p, $newf, $dupf, $freef));
    }' unless defined(&UI_get_ex_new_index);
    unless(defined(&OPENSSL_NO_UI_CONSOLE)) {
    }
    eval 'sub sk_UI_STRING_num {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_num( &ossl_check_const_UI_STRING_sk_type($sk)));
    }' unless defined(&sk_UI_STRING_num);
    eval 'sub sk_UI_STRING_value {
        my($sk, $idx) = @_;
	    eval q((( &UI_STRING *) &OPENSSL_sk_value( &ossl_check_const_UI_STRING_sk_type($sk), ($idx))));
    }' unless defined(&sk_UI_STRING_value);
    eval 'sub sk_UI_STRING_new {
        my($cmp) = @_;
	    eval q((( &STACK_OF( &UI_STRING) *) &OPENSSL_sk_new( &ossl_check_UI_STRING_compfunc_type($cmp))));
    }' unless defined(&sk_UI_STRING_new);
    eval 'sub sk_UI_STRING_new_null () {
        eval q((( &STACK_OF( &UI_STRING) *) &OPENSSL_sk_new_null()));
    }' unless defined(&sk_UI_STRING_new_null);
    eval 'sub sk_UI_STRING_new_reserve {
        my($cmp, $n) = @_;
	    eval q((( &STACK_OF( &UI_STRING) *) &OPENSSL_sk_new_reserve( &ossl_check_UI_STRING_compfunc_type($cmp), ($n))));
    }' unless defined(&sk_UI_STRING_new_reserve);
    eval 'sub sk_UI_STRING_reserve {
        my($sk, $n) = @_;
	    eval q( &OPENSSL_sk_reserve( &ossl_check_UI_STRING_sk_type($sk), ($n)));
    }' unless defined(&sk_UI_STRING_reserve);
    eval 'sub sk_UI_STRING_free {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_free( &ossl_check_UI_STRING_sk_type($sk)));
    }' unless defined(&sk_UI_STRING_free);
    eval 'sub sk_UI_STRING_zero {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_zero( &ossl_check_UI_STRING_sk_type($sk)));
    }' unless defined(&sk_UI_STRING_zero);
    eval 'sub sk_UI_STRING_delete {
        my($sk, $i) = @_;
	    eval q((( &UI_STRING *) &OPENSSL_sk_delete( &ossl_check_UI_STRING_sk_type($sk), ($i))));
    }' unless defined(&sk_UI_STRING_delete);
    eval 'sub sk_UI_STRING_delete_ptr {
        my($sk, $ptr) = @_;
	    eval q((( &UI_STRING *) &OPENSSL_sk_delete_ptr( &ossl_check_UI_STRING_sk_type($sk),  &ossl_check_UI_STRING_type($ptr))));
    }' unless defined(&sk_UI_STRING_delete_ptr);
    eval 'sub sk_UI_STRING_push {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_push( &ossl_check_UI_STRING_sk_type($sk),  &ossl_check_UI_STRING_type($ptr)));
    }' unless defined(&sk_UI_STRING_push);
    eval 'sub sk_UI_STRING_unshift {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_unshift( &ossl_check_UI_STRING_sk_type($sk),  &ossl_check_UI_STRING_type($ptr)));
    }' unless defined(&sk_UI_STRING_unshift);
    eval 'sub sk_UI_STRING_pop {
        my($sk) = @_;
	    eval q((( &UI_STRING *) &OPENSSL_sk_pop( &ossl_check_UI_STRING_sk_type($sk))));
    }' unless defined(&sk_UI_STRING_pop);
    eval 'sub sk_UI_STRING_shift {
        my($sk) = @_;
	    eval q((( &UI_STRING *) &OPENSSL_sk_shift( &ossl_check_UI_STRING_sk_type($sk))));
    }' unless defined(&sk_UI_STRING_shift);
    eval 'sub sk_UI_STRING_pop_free {
        my($sk, $freefunc) = @_;
	    eval q( &OPENSSL_sk_pop_free( &ossl_check_UI_STRING_sk_type($sk), &ossl_check_UI_STRING_freefunc_type($freefunc)));
    }' unless defined(&sk_UI_STRING_pop_free);
    eval 'sub sk_UI_STRING_insert {
        my($sk, $ptr, $idx) = @_;
	    eval q( &OPENSSL_sk_insert( &ossl_check_UI_STRING_sk_type($sk),  &ossl_check_UI_STRING_type($ptr), ($idx)));
    }' unless defined(&sk_UI_STRING_insert);
    eval 'sub sk_UI_STRING_set {
        my($sk, $idx, $ptr) = @_;
	    eval q((( &UI_STRING *) &OPENSSL_sk_set( &ossl_check_UI_STRING_sk_type($sk), ($idx),  &ossl_check_UI_STRING_type($ptr))));
    }' unless defined(&sk_UI_STRING_set);
    eval 'sub sk_UI_STRING_find {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_find( &ossl_check_UI_STRING_sk_type($sk),  &ossl_check_UI_STRING_type($ptr)));
    }' unless defined(&sk_UI_STRING_find);
    eval 'sub sk_UI_STRING_find_ex {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_find_ex( &ossl_check_UI_STRING_sk_type($sk),  &ossl_check_UI_STRING_type($ptr)));
    }' unless defined(&sk_UI_STRING_find_ex);
    eval 'sub sk_UI_STRING_find_all {
        my($sk, $ptr, $pnum) = @_;
	    eval q( &OPENSSL_sk_find_all( &ossl_check_UI_STRING_sk_type($sk),  &ossl_check_UI_STRING_type($ptr), $pnum));
    }' unless defined(&sk_UI_STRING_find_all);
    eval 'sub sk_UI_STRING_sort {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_sort( &ossl_check_UI_STRING_sk_type($sk)));
    }' unless defined(&sk_UI_STRING_sort);
    eval 'sub sk_UI_STRING_is_sorted {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_is_sorted( &ossl_check_const_UI_STRING_sk_type($sk)));
    }' unless defined(&sk_UI_STRING_is_sorted);
    eval 'sub sk_UI_STRING_dup {
        my($sk) = @_;
	    eval q((( &STACK_OF( &UI_STRING) *) &OPENSSL_sk_dup( &ossl_check_const_UI_STRING_sk_type($sk))));
    }' unless defined(&sk_UI_STRING_dup);
    eval 'sub sk_UI_STRING_deep_copy {
        my($sk, $copyfunc, $freefunc) = @_;
	    eval q((( &STACK_OF( &UI_STRING) *) &OPENSSL_sk_deep_copy( &ossl_check_const_UI_STRING_sk_type($sk),  &ossl_check_UI_STRING_copyfunc_type($copyfunc),  &ossl_check_UI_STRING_freefunc_type($freefunc))));
    }' unless defined(&sk_UI_STRING_deep_copy);
    eval 'sub sk_UI_STRING_set_cmp_func {
        my($sk, $cmp) = @_;
	    eval q((( &sk_UI_STRING_compfunc) &OPENSSL_sk_set_cmp_func( &ossl_check_UI_STRING_sk_type($sk),  &ossl_check_UI_STRING_compfunc_type($cmp))));
    }' unless defined(&sk_UI_STRING_set_cmp_func);
    eval("sub UIT_NONE () { 0; }") unless defined(&UIT_NONE);
    eval("sub UIT_PROMPT () { 1; }") unless defined(&UIT_PROMPT);
    eval("sub UIT_VERIFY () { 2; }") unless defined(&UIT_VERIFY);
    eval("sub UIT_BOOLEAN () { 3; }") unless defined(&UIT_BOOLEAN);
    eval("sub UIT_INFO () { 4; }") unless defined(&UIT_INFO);
    eval("sub UIT_ERROR () { 5; }") unless defined(&UIT_ERROR);
    if(defined(&__cplusplus)) {
    }
}
1;
