Linux velvet.gennetworks.in 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
LiteSpeed
Server IP : 161.129.70.235 & Your IP : 216.73.216.5
Domains :
Cant Read [ /etc/named.conf ]
User : virtueex
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
alt /
alt-nodejs19 /
root /
usr /
include /
unicode /
Delete
Unzip
Name
Size
Permission
Date
Action
alphaindex.h
26.53
KB
-rw-r--r--
2023-02-22 15:33
appendable.h
8.53
KB
-rw-r--r--
2023-02-22 15:33
basictz.h
9.98
KB
-rw-r--r--
2023-02-22 15:33
brkiter.h
27.81
KB
-rw-r--r--
2023-02-22 15:33
bytestream.h
10.75
KB
-rw-r--r--
2023-02-22 15:33
bytestrie.h
20.78
KB
-rw-r--r--
2023-02-22 15:33
bytestriebuilder.h
7.48
KB
-rw-r--r--
2023-02-22 15:33
calendar.h
102.25
KB
-rw-r--r--
2023-02-22 15:33
caniter.h
7.47
KB
-rw-r--r--
2023-02-22 15:33
casemap.h
25.33
KB
-rw-r--r--
2023-02-22 15:33
char16ptr.h
7.22
KB
-rw-r--r--
2023-02-22 15:33
chariter.h
24.06
KB
-rw-r--r--
2023-02-22 15:33
choicfmt.h
23.98
KB
-rw-r--r--
2023-02-22 15:33
coleitr.h
13.78
KB
-rw-r--r--
2023-02-22 15:33
coll.h
56.27
KB
-rw-r--r--
2023-02-22 15:33
compactdecimalformat.h
6.88
KB
-rw-r--r--
2023-02-22 15:33
curramt.h
3.78
KB
-rw-r--r--
2023-02-22 15:33
currpinf.h
7.3
KB
-rw-r--r--
2023-02-22 15:33
currunit.h
4.02
KB
-rw-r--r--
2023-02-22 15:33
datefmt.h
40.71
KB
-rw-r--r--
2023-02-22 15:33
dbbi.h
1.19
KB
-rw-r--r--
2023-02-22 15:33
dcfmtsym.h
20.61
KB
-rw-r--r--
2023-02-22 15:33
decimfmt.h
87.57
KB
-rw-r--r--
2023-02-22 15:33
displayoptions.h
7.11
KB
-rw-r--r--
2023-02-22 15:33
docmain.h
7.21
KB
-rw-r--r--
2023-02-22 15:33
dtfmtsym.h
38.22
KB
-rw-r--r--
2023-02-22 15:33
dtintrv.h
3.85
KB
-rw-r--r--
2023-02-22 15:33
dtitvfmt.h
49.27
KB
-rw-r--r--
2023-02-22 15:33
dtitvinf.h
18.63
KB
-rw-r--r--
2023-02-22 15:33
dtptngen.h
28.69
KB
-rw-r--r--
2023-02-22 15:33
dtrule.h
8.69
KB
-rw-r--r--
2023-02-22 15:33
edits.h
20.74
KB
-rw-r--r--
2023-02-22 15:33
enumset.h
2.08
KB
-rw-r--r--
2023-02-22 15:33
errorcode.h
4.84
KB
-rw-r--r--
2023-02-22 15:33
fieldpos.h
8.7
KB
-rw-r--r--
2023-02-22 15:33
filteredbrk.h
5.37
KB
-rw-r--r--
2023-02-22 15:33
fmtable.h
24.43
KB
-rw-r--r--
2023-02-22 15:33
format.h
12.5
KB
-rw-r--r--
2023-02-22 15:33
formattedvalue.h
9.75
KB
-rw-r--r--
2023-02-22 15:33
fpositer.h
3.03
KB
-rw-r--r--
2023-02-22 15:33
gender.h
3.35
KB
-rw-r--r--
2023-02-22 15:33
gregocal.h
31.04
KB
-rw-r--r--
2023-02-22 15:33
icudataver.h
1.02
KB
-rw-r--r--
2023-02-22 15:33
icuplug.h
11.83
KB
-rw-r--r--
2023-02-22 15:33
idna.h
12.71
KB
-rw-r--r--
2023-02-22 15:33
listformatter.h
8.61
KB
-rw-r--r--
2023-02-22 15:33
localebuilder.h
11.08
KB
-rw-r--r--
2023-02-22 15:33
localematcher.h
26.84
KB
-rw-r--r--
2023-02-22 15:33
localpointer.h
19.36
KB
-rw-r--r--
2023-02-22 15:33
locdspnm.h
7.12
KB
-rw-r--r--
2023-02-22 15:33
locid.h
47.66
KB
-rw-r--r--
2023-02-22 15:33
measfmt.h
11.42
KB
-rw-r--r--
2023-02-22 15:33
measunit.h
106.33
KB
-rw-r--r--
2023-02-22 15:33
measure.h
4.33
KB
-rw-r--r--
2023-02-22 15:33
messagepattern.h
33.71
KB
-rw-r--r--
2023-02-22 15:33
msgfmt.h
44.17
KB
-rw-r--r--
2023-02-22 15:33
normalizer2.h
33.66
KB
-rw-r--r--
2023-02-22 15:33
normlzr.h
30.96
KB
-rw-r--r--
2023-02-22 15:33
nounit.h
2.25
KB
-rw-r--r--
2023-02-22 15:33
numberformatter.h
94.82
KB
-rw-r--r--
2023-02-22 15:33
numberrangeformatter.h
25.02
KB
-rw-r--r--
2023-02-22 15:33
numfmt.h
49.84
KB
-rw-r--r--
2023-02-22 15:33
numsys.h
7.22
KB
-rw-r--r--
2023-02-22 15:33
parseerr.h
3.08
KB
-rw-r--r--
2023-02-22 15:33
parsepos.h
5.57
KB
-rw-r--r--
2023-02-22 15:33
platform.h
28.55
KB
-rw-r--r--
2023-02-22 15:33
plurfmt.h
25.25
KB
-rw-r--r--
2023-02-22 15:33
plurrule.h
20.62
KB
-rw-r--r--
2023-02-22 15:33
ptypes.h
3.49
KB
-rw-r--r--
2023-02-22 15:33
putil.h
6.32
KB
-rw-r--r--
2023-02-22 15:33
rbbi.h
28.46
KB
-rw-r--r--
2023-02-22 15:33
rbnf.h
49.82
KB
-rw-r--r--
2023-02-22 15:33
rbtz.h
15.77
KB
-rw-r--r--
2023-02-22 15:33
regex.h
84.41
KB
-rw-r--r--
2023-02-22 15:33
region.h
9.18
KB
-rw-r--r--
2023-02-22 15:33
reldatefmt.h
22.22
KB
-rw-r--r--
2023-02-22 15:33
rep.h
9.37
KB
-rw-r--r--
2023-02-22 15:33
resbund.h
18.09
KB
-rw-r--r--
2023-02-22 15:33
schriter.h
6.1
KB
-rw-r--r--
2023-02-22 15:33
scientificnumberformatter.h
6.44
KB
-rw-r--r--
2023-02-22 15:33
search.h
22.22
KB
-rw-r--r--
2023-02-22 15:33
selfmt.h
14.35
KB
-rw-r--r--
2023-02-22 15:33
simpleformatter.h
12.59
KB
-rw-r--r--
2023-02-22 15:33
simpletz.h
45.65
KB
-rw-r--r--
2023-02-22 15:33
smpdtfmt.h
71.93
KB
-rw-r--r--
2023-02-22 15:33
sortkey.h
11.18
KB
-rw-r--r--
2023-02-22 15:33
std_string.h
1.05
KB
-rw-r--r--
2023-02-22 15:33
strenum.h
9.92
KB
-rw-r--r--
2023-02-22 15:33
stringoptions.h
5.79
KB
-rw-r--r--
2023-02-22 15:33
stringpiece.h
10.05
KB
-rw-r--r--
2023-02-22 15:33
stringtriebuilder.h
15.47
KB
-rw-r--r--
2023-02-22 15:33
stsearch.h
21.42
KB
-rw-r--r--
2023-02-22 15:33
symtable.h
4.27
KB
-rw-r--r--
2023-02-22 15:33
tblcoll.h
36.92
KB
-rw-r--r--
2023-02-22 15:33
timezone.h
43.81
KB
-rw-r--r--
2023-02-22 15:33
tmunit.h
3.4
KB
-rw-r--r--
2023-02-22 15:33
tmutamt.h
4.91
KB
-rw-r--r--
2023-02-22 15:33
tmutfmt.h
7.42
KB
-rw-r--r--
2023-02-22 15:33
translit.h
65.82
KB
-rw-r--r--
2023-02-22 15:33
tzfmt.h
42.93
KB
-rw-r--r--
2023-02-22 15:33
tznames.h
16.85
KB
-rw-r--r--
2023-02-22 15:33
tzrule.h
34.86
KB
-rw-r--r--
2023-02-22 15:33
tztrans.h
6.13
KB
-rw-r--r--
2023-02-22 15:33
ubidi.h
89.61
KB
-rw-r--r--
2023-02-22 15:33
ubiditransform.h
12.71
KB
-rw-r--r--
2023-02-22 15:33
ubrk.h
24.43
KB
-rw-r--r--
2023-02-22 15:33
ucal.h
60.68
KB
-rw-r--r--
2023-02-22 15:33
ucasemap.h
15.21
KB
-rw-r--r--
2023-02-22 15:33
ucat.h
5.35
KB
-rw-r--r--
2023-02-22 15:33
uchar.h
145.09
KB
-rw-r--r--
2023-02-22 15:33
ucharstrie.h
22.53
KB
-rw-r--r--
2023-02-22 15:33
ucharstriebuilder.h
7.48
KB
-rw-r--r--
2023-02-22 15:33
uchriter.h
13.42
KB
-rw-r--r--
2023-02-22 15:33
uclean.h
11.2
KB
-rw-r--r--
2023-02-22 15:33
ucnv.h
83.46
KB
-rw-r--r--
2023-02-22 15:33
ucnv_cb.h
6.58
KB
-rw-r--r--
2023-02-22 15:33
ucnv_err.h
20.98
KB
-rw-r--r--
2023-02-22 15:33
ucnvsel.h
6.24
KB
-rw-r--r--
2023-02-22 15:33
ucol.h
61.95
KB
-rw-r--r--
2023-02-22 15:33
ucoleitr.h
9.82
KB
-rw-r--r--
2023-02-22 15:33
uconfig.h
12.07
KB
-rw-r--r--
2023-02-22 15:33
ucpmap.h
5.54
KB
-rw-r--r--
2023-02-22 15:33
ucptrie.h
22.51
KB
-rw-r--r--
2023-02-22 15:33
ucsdet.h
14.69
KB
-rw-r--r--
2023-02-22 15:33
ucurr.h
16.72
KB
-rw-r--r--
2023-02-22 15:33
udat.h
62.36
KB
-rw-r--r--
2023-02-22 15:33
udata.h
15.63
KB
-rw-r--r--
2023-02-22 15:33
udateintervalformat.h
11.93
KB
-rw-r--r--
2023-02-22 15:33
udatpg.h
30.18
KB
-rw-r--r--
2023-02-22 15:33
udisplaycontext.h
5.94
KB
-rw-r--r--
2023-02-22 15:33
udisplayoptions.h
8.8
KB
-rw-r--r--
2023-02-22 15:33
uenum.h
7.79
KB
-rw-r--r--
2023-02-22 15:33
ufieldpositer.h
4.41
KB
-rw-r--r--
2023-02-22 15:33
uformattable.h
10.97
KB
-rw-r--r--
2023-02-22 15:33
uformattedvalue.h
12.25
KB
-rw-r--r--
2023-02-22 15:33
ugender.h
2.06
KB
-rw-r--r--
2023-02-22 15:33
uidna.h
33.43
KB
-rw-r--r--
2023-02-22 15:33
uiter.h
22.75
KB
-rw-r--r--
2023-02-22 15:33
uldnames.h
10.48
KB
-rw-r--r--
2023-02-22 15:33
ulistformatter.h
10.78
KB
-rw-r--r--
2023-02-22 15:33
uloc.h
54.66
KB
-rw-r--r--
2023-02-22 15:33
ulocdata.h
11.3
KB
-rw-r--r--
2023-02-22 15:33
umachine.h
15.73
KB
-rw-r--r--
2023-02-22 15:33
umisc.h
1.34
KB
-rw-r--r--
2023-02-22 15:33
umsg.h
24.25
KB
-rw-r--r--
2023-02-22 15:33
umutablecptrie.h
8.3
KB
-rw-r--r--
2023-02-22 15:33
unifilt.h
4
KB
-rw-r--r--
2023-02-22 15:33
unifunct.h
4.05
KB
-rw-r--r--
2023-02-22 15:33
unimatch.h
6.1
KB
-rw-r--r--
2023-02-22 15:33
unirepl.h
3.38
KB
-rw-r--r--
2023-02-22 15:33
uniset.h
66.12
KB
-rw-r--r--
2023-02-22 15:33
unistr.h
170.53
KB
-rw-r--r--
2023-02-22 15:33
unorm.h
20.55
KB
-rw-r--r--
2023-02-22 15:33
unorm2.h
24.68
KB
-rw-r--r--
2023-02-22 15:33
unum.h
56.6
KB
-rw-r--r--
2023-02-22 15:33
unumberformatter.h
30.26
KB
-rw-r--r--
2023-02-22 15:33
unumberrangeformatter.h
15.35
KB
-rw-r--r--
2023-02-22 15:33
unumsys.h
7.26
KB
-rw-r--r--
2023-02-22 15:33
uobject.h
10.68
KB
-rw-r--r--
2023-02-22 15:33
upluralrules.h
8.79
KB
-rw-r--r--
2023-02-22 15:33
uregex.h
71.99
KB
-rw-r--r--
2023-02-22 15:33
uregion.h
9.81
KB
-rw-r--r--
2023-02-22 15:33
ureldatefmt.h
17.04
KB
-rw-r--r--
2023-02-22 15:33
urename.h
135.69
KB
-rw-r--r--
2023-02-22 15:33
urep.h
5.38
KB
-rw-r--r--
2023-02-22 15:33
ures.h
36.54
KB
-rw-r--r--
2023-02-22 15:33
uscript.h
27.8
KB
-rw-r--r--
2023-02-22 15:33
usearch.h
39.21
KB
-rw-r--r--
2023-02-22 15:33
uset.h
44.19
KB
-rw-r--r--
2023-02-22 15:33
usetiter.h
9.63
KB
-rw-r--r--
2023-02-22 15:33
ushape.h
18
KB
-rw-r--r--
2023-02-22 15:33
uspoof.h
65.84
KB
-rw-r--r--
2023-02-22 15:33
usprep.h
8.19
KB
-rw-r--r--
2023-02-22 15:33
ustdio.h
38.56
KB
-rw-r--r--
2023-02-22 15:33
ustream.h
1.89
KB
-rw-r--r--
2023-02-22 15:33
ustring.h
72.36
KB
-rw-r--r--
2023-02-22 15:33
ustringtrie.h
3.15
KB
-rw-r--r--
2023-02-22 15:33
utext.h
58.08
KB
-rw-r--r--
2023-02-22 15:33
utf.h
7.87
KB
-rw-r--r--
2023-02-22 15:33
utf16.h
23.35
KB
-rw-r--r--
2023-02-22 15:33
utf32.h
763
B
-rw-r--r--
2023-02-22 15:33
utf8.h
30.83
KB
-rw-r--r--
2023-02-22 15:33
utf_old.h
45.8
KB
-rw-r--r--
2023-02-22 15:33
utmscale.h
13.78
KB
-rw-r--r--
2023-02-22 15:33
utrace.h
17.18
KB
-rw-r--r--
2023-02-22 15:33
utrans.h
25.54
KB
-rw-r--r--
2023-02-22 15:33
utypes.h
31.06
KB
-rw-r--r--
2023-02-22 15:33
uvernum.h
6.33
KB
-rw-r--r--
2023-02-22 15:33
uversion.h
5.99
KB
-rw-r--r--
2023-02-22 15:33
vtzone.h
20.68
KB
-rw-r--r--
2023-02-22 15:33
Save
Rename
// © 2017 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html // char16ptr.h // created: 2017feb28 Markus W. Scherer #ifndef __CHAR16PTR_H__ #define __CHAR16PTR_H__ #include "unicode/utypes.h" #if U_SHOW_CPLUSPLUS_API #include <cstddef> /** * \file * \brief C++ API: char16_t pointer wrappers with * implicit conversion from bit-compatible raw pointer types. * Also conversion functions from char16_t * to UChar * and OldUChar *. */ U_NAMESPACE_BEGIN /** * \def U_ALIASING_BARRIER * Barrier for pointer anti-aliasing optimizations even across function boundaries. * @internal */ #ifdef U_ALIASING_BARRIER // Use the predefined value. #elif (defined(__clang__) || defined(__GNUC__)) && U_PLATFORM != U_PF_BROWSER_NATIVE_CLIENT # define U_ALIASING_BARRIER(ptr) asm volatile("" : : "rm"(ptr) : "memory") #elif defined(U_IN_DOXYGEN) # define U_ALIASING_BARRIER(ptr) #endif /** * char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types. * @stable ICU 59 */ class U_COMMON_API Char16Ptr U_FINAL { public: /** * Copies the pointer. * @param p pointer * @stable ICU 59 */ inline Char16Ptr(char16_t *p); #if !U_CHAR16_IS_TYPEDEF /** * Converts the pointer to char16_t *. * @param p pointer to be converted * @stable ICU 59 */ inline Char16Ptr(uint16_t *p); #endif #if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN) /** * Converts the pointer to char16_t *. * (Only defined if U_SIZEOF_WCHAR_T==2.) * @param p pointer to be converted * @stable ICU 59 */ inline Char16Ptr(wchar_t *p); #endif /** * nullptr constructor. * @param p nullptr * @stable ICU 59 */ inline Char16Ptr(std::nullptr_t p); /** * Destructor. * @stable ICU 59 */ inline ~Char16Ptr(); /** * Pointer access. * @return the wrapped pointer * @stable ICU 59 */ inline char16_t *get() const; /** * char16_t pointer access via type conversion (e.g., static_cast). * @return the wrapped pointer * @stable ICU 59 */ inline operator char16_t *() const { return get(); } private: Char16Ptr() = delete; #ifdef U_ALIASING_BARRIER template<typename T> static char16_t *cast(T *t) { U_ALIASING_BARRIER(t); return reinterpret_cast<char16_t *>(t); } char16_t *p_; #else union { char16_t *cp; uint16_t *up; wchar_t *wp; } u_; #endif }; /// \cond #ifdef U_ALIASING_BARRIER Char16Ptr::Char16Ptr(char16_t *p) : p_(p) {} #if !U_CHAR16_IS_TYPEDEF Char16Ptr::Char16Ptr(uint16_t *p) : p_(cast(p)) {} #endif #if U_SIZEOF_WCHAR_T==2 Char16Ptr::Char16Ptr(wchar_t *p) : p_(cast(p)) {} #endif Char16Ptr::Char16Ptr(std::nullptr_t p) : p_(p) {} Char16Ptr::~Char16Ptr() { U_ALIASING_BARRIER(p_); } char16_t *Char16Ptr::get() const { return p_; } #else Char16Ptr::Char16Ptr(char16_t *p) { u_.cp = p; } #if !U_CHAR16_IS_TYPEDEF Char16Ptr::Char16Ptr(uint16_t *p) { u_.up = p; } #endif #if U_SIZEOF_WCHAR_T==2 Char16Ptr::Char16Ptr(wchar_t *p) { u_.wp = p; } #endif Char16Ptr::Char16Ptr(std::nullptr_t p) { u_.cp = p; } Char16Ptr::~Char16Ptr() {} char16_t *Char16Ptr::get() const { return u_.cp; } #endif /// \endcond /** * const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types. * @stable ICU 59 */ class U_COMMON_API ConstChar16Ptr U_FINAL { public: /** * Copies the pointer. * @param p pointer * @stable ICU 59 */ inline ConstChar16Ptr(const char16_t *p); #if !U_CHAR16_IS_TYPEDEF /** * Converts the pointer to char16_t *. * @param p pointer to be converted * @stable ICU 59 */ inline ConstChar16Ptr(const uint16_t *p); #endif #if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN) /** * Converts the pointer to char16_t *. * (Only defined if U_SIZEOF_WCHAR_T==2.) * @param p pointer to be converted * @stable ICU 59 */ inline ConstChar16Ptr(const wchar_t *p); #endif /** * nullptr constructor. * @param p nullptr * @stable ICU 59 */ inline ConstChar16Ptr(const std::nullptr_t p); /** * Destructor. * @stable ICU 59 */ inline ~ConstChar16Ptr(); /** * Pointer access. * @return the wrapped pointer * @stable ICU 59 */ inline const char16_t *get() const; /** * char16_t pointer access via type conversion (e.g., static_cast). * @return the wrapped pointer * @stable ICU 59 */ inline operator const char16_t *() const { return get(); } private: ConstChar16Ptr() = delete; #ifdef U_ALIASING_BARRIER template<typename T> static const char16_t *cast(const T *t) { U_ALIASING_BARRIER(t); return reinterpret_cast<const char16_t *>(t); } const char16_t *p_; #else union { const char16_t *cp; const uint16_t *up; const wchar_t *wp; } u_; #endif }; /// \cond #ifdef U_ALIASING_BARRIER ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) : p_(p) {} #if !U_CHAR16_IS_TYPEDEF ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) : p_(cast(p)) {} #endif #if U_SIZEOF_WCHAR_T==2 ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) : p_(cast(p)) {} #endif ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) : p_(p) {} ConstChar16Ptr::~ConstChar16Ptr() { U_ALIASING_BARRIER(p_); } const char16_t *ConstChar16Ptr::get() const { return p_; } #else ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) { u_.cp = p; } #if !U_CHAR16_IS_TYPEDEF ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) { u_.up = p; } #endif #if U_SIZEOF_WCHAR_T==2 ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) { u_.wp = p; } #endif ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) { u_.cp = p; } ConstChar16Ptr::~ConstChar16Ptr() {} const char16_t *ConstChar16Ptr::get() const { return u_.cp; } #endif /// \endcond /** * Converts from const char16_t * to const UChar *. * Includes an aliasing barrier if available. * @param p pointer * @return p as const UChar * * @stable ICU 59 */ inline const UChar *toUCharPtr(const char16_t *p) { #ifdef U_ALIASING_BARRIER U_ALIASING_BARRIER(p); #endif return reinterpret_cast<const UChar *>(p); } /** * Converts from char16_t * to UChar *. * Includes an aliasing barrier if available. * @param p pointer * @return p as UChar * * @stable ICU 59 */ inline UChar *toUCharPtr(char16_t *p) { #ifdef U_ALIASING_BARRIER U_ALIASING_BARRIER(p); #endif return reinterpret_cast<UChar *>(p); } /** * Converts from const char16_t * to const OldUChar *. * Includes an aliasing barrier if available. * @param p pointer * @return p as const OldUChar * * @stable ICU 59 */ inline const OldUChar *toOldUCharPtr(const char16_t *p) { #ifdef U_ALIASING_BARRIER U_ALIASING_BARRIER(p); #endif return reinterpret_cast<const OldUChar *>(p); } /** * Converts from char16_t * to OldUChar *. * Includes an aliasing barrier if available. * @param p pointer * @return p as OldUChar * * @stable ICU 59 */ inline OldUChar *toOldUCharPtr(char16_t *p) { #ifdef U_ALIASING_BARRIER U_ALIASING_BARRIER(p); #endif return reinterpret_cast<OldUChar *>(p); } U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ #endif // __CHAR16PTR_H__