LLVMFuzzerTestOneInput:
  112|    288|extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  113|    288|	init();
  114|    288|	LoggerPtr logger = Logger::getRootLogger();
  115|    288|  	FuzzedDataProvider dataProvider(data, size);
  116|   234k|  	while (dataProvider.remaining_bytes() > 0) {
  ------------------
  |  Branch (116:11): [True: 234k, False: 288]
  ------------------
  117|   234k|  		std::string message = dataProvider.ConsumeRandomLengthString(MAX_STRING_LENGTH);
  ------------------
  |  |  110|   234k|#define MAX_STRING_LENGTH 512
  ------------------
  118|   234k|    	LOG4CXX_INFO(logger, message);
  ------------------
  |  | 2413|   234k|#define LOG4CXX_INFO(logger, message) do { \
  |  | 2414|   234k|		if (::LOG4CXX_NS::Logger::isInfoEnabledFor(logger)) {\
  |  |  ------------------
  |  |  |  Branch (2414:7): [True: 234k, False: 0]
  |  |  ------------------
  |  | 2415|   234k|			::LOG4CXX_NS::helpers::MessageBuffer oss_; \
  |  | 2416|   234k|			logger->addInfoEvent(oss_.extract_str(oss_ << message), LOG4CXX_LOCATION); }} while (0)
  |  |  ------------------
  |  |  |  |  171|   234k|#define LOG4CXX_LOCATION ::LOG4CXX_NS::spi::LocationInfo(__FILE__,         \
  |  |  |  |  172|   234k|	::LOG4CXX_NS::spi::LocationInfo::calcShortFileName(__FILE__), \
  |  |  |  |  173|   234k|	__LOG4CXX_FUNC__, \
  |  |  |  |  ------------------
  |  |  |  |  |  |  159|   234k|		#define __LOG4CXX_FUNC__ __PRETTY_FUNCTION__
  |  |  |  |  ------------------
  |  |  |  |  174|       |	__LINE__)
  |  |  ------------------
  |  |  |  Branch (2416:89): [Folded, False: 234k]
  |  |  ------------------
  ------------------
  119|   234k|    }
  120|    288|  	return 0;
  121|    288|}
PatternLayoutFuzzer.cpp:_ZL4initv:
  100|    288|static void init() {
  101|    288|	if (INITIALIZED != 0) {
  ------------------
  |  Branch (101:6): [True: 287, False: 1]
  ------------------
  102|    287|		return;
  103|    287|	}
  104|      1|	LOG(std::cout) << "INFO: Produced using the Git commit ID: " << GIT_COMMIT_ID << std::endl;
  ------------------
  |  |   74|      4|	logTime = std::time(nullptr); \
  |  |   75|      4|	logTimeBuffer = std::localtime(&logTime); \
  |  |   76|      4|	stream << std::put_time(logTimeBuffer, "%Y-%m-%d %H:%M:%S") << " [" << __FILE_NAME__ << ":" << __LINE__ << "] "
  ------------------
  105|      1|	chdirExecutableHome();
  106|      1|	PropertyConfigurator::configure("PatternLayoutFuzzer.properties");
  107|      1|	INITIALIZED = 1;
  108|      1|}
PatternLayoutFuzzer.cpp:_ZL19chdirExecutableHomev:
   87|      1|static void chdirExecutableHome() {
   88|      1|    char executablePath[PATH_MAX];
   89|      1|    findExecutablePath(executablePath);
   90|      1|    char* executableHome = dirname(executablePath);
   91|      1|	if (chdir(executableHome) != 0) {
  ------------------
  |  Branch (91:6): [True: 0, False: 1]
  ------------------
   92|      0|		LOG(std::cerr) << "DEBUG: Executable path: " << executablePath << std::endl;
  ------------------
  |  |   74|      0|	logTime = std::time(nullptr); \
  |  |   75|      0|	logTimeBuffer = std::localtime(&logTime); \
  |  |   76|      0|	stream << std::put_time(logTimeBuffer, "%Y-%m-%d %H:%M:%S") << " [" << __FILE_NAME__ << ":" << __LINE__ << "] "
  ------------------
   93|      0|		LOG(std::cerr) << "DEBUG: Executable home: " << executableHome << std::endl;
  ------------------
  |  |   74|      0|	logTime = std::time(nullptr); \
  |  |   75|      0|	logTimeBuffer = std::localtime(&logTime); \
  |  |   76|      0|	stream << std::put_time(logTimeBuffer, "%Y-%m-%d %H:%M:%S") << " [" << __FILE_NAME__ << ":" << __LINE__ << "] "
  ------------------
   94|      0|		LOG(std::cerr) << "ERROR: Failed to `chdir()` the executable path" << std::endl;
  ------------------
  |  |   74|      0|	logTime = std::time(nullptr); \
  |  |   75|      0|	logTimeBuffer = std::localtime(&logTime); \
  |  |   76|      0|	stream << std::put_time(logTimeBuffer, "%Y-%m-%d %H:%M:%S") << " [" << __FILE_NAME__ << ":" << __LINE__ << "] "
  ------------------
   95|      0|	}
   96|      1|}
PatternLayoutFuzzer.cpp:_ZL18findExecutablePathPc:
   78|      1|static void findExecutablePath(char* buffer) {
   79|      1|    ssize_t length = readlink("/proc/self/exe", buffer, PATH_MAX);
   80|      1|    if (length == -1) {
  ------------------
  |  Branch (80:9): [True: 0, False: 1]
  ------------------
   81|      0|    	LOG(std::cerr) << "ERROR: Failed to find the executable path" << std::endl;
  ------------------
  |  |   74|      0|	logTime = std::time(nullptr); \
  |  |   75|      0|	logTimeBuffer = std::localtime(&logTime); \
  |  |   76|      0|	stream << std::put_time(logTimeBuffer, "%Y-%m-%d %H:%M:%S") << " [" << __FILE_NAME__ << ":" << __LINE__ << "] "
  ------------------
   82|      0|		exit(EXIT_FAILURE);
   83|      0|	}
   84|      1|	buffer[length] = '\0';
   85|      1|}
_ZNK7log4cxx6fuzzer16EncodingAppender4castERKNS_7helpers5ClassE:
   41|      8|	BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      8|	{\
  |  |  145|      8|		const void * object = 0;\
  |  |  146|      8|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 8]
  |  |  ------------------
  ------------------
   42|      8|	LOG4CXX_CAST_ENTRY(EncodingAppender)
  ------------------
  |  |  155|      8|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 8]
  |  |  ------------------
  ------------------
   43|      8|	LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton)
  ------------------
  |  |  161|      8|	object = Interface::cast(clazz);\
  |  |  162|      8|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 6, False: 2]
  |  |  ------------------
  ------------------
   44|      2|	END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      2|	return object;\
  |  |  150|      8|	}\
  ------------------
_ZN7log4cxx6fuzzer16EncodingAppender5closeEv:
   50|      1|	void close() override {}
_ZNK7log4cxx6fuzzer16EncodingAppender14requiresLayoutEv:
   52|      1|	bool requiresLayout() const override {
   53|      1|		return true;
   54|      1|	}
_ZN7log4cxx6fuzzer16EncodingAppender6appendERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS_7helpers4PoolE:
   56|   234k|	void append(const spi::LoggingEventPtr& event, helpers::Pool& pool) override {
   57|   234k|		LogString msg;
   58|   234k|		getLayout()->format(msg, event, pool);
   59|   234k|	}
_ZN7log4cxx6fuzzer16EncodingAppenderC1Ev:
   46|      1|	EncodingAppender() : AppenderSkeleton() {}

_ZN7log4cxx8Appender8doAppendERKNSt3__110shared_ptrINS_3spi12LoggingEventEEE:
   26|   234k|{
   27|   234k|	helpers::Pool p;
   28|   234k|	doAppend(event, p);
   29|   234k|}

_ZN7log4cxx7helpers22AppenderAttachableImplC1Ev:
   68|      1|{
   69|      1|}
_ZN7log4cxx7helpers22AppenderAttachableImplD2Ev:
   77|      1|{
   78|      1|}
_ZN7log4cxx7helpers22AppenderAttachableImpl21appendLoopOnAppendersERKNSt3__110shared_ptrINS_3spi12LoggingEventEEE:
  100|   234k|{
  101|   234k|	int result = 0;
  102|   234k|	if (m_priv)
  ------------------
  |  Branch (102:6): [True: 234k, False: 0]
  ------------------
  103|   234k|	{
  104|   234k|		auto allAppenders = m_priv->getAppenders();
  105|   234k|		for (auto& appender : *allAppenders)
  ------------------
  |  Branch (105:23): [True: 234k, False: 234k]
  ------------------
  106|   234k|		{
  107|   234k|			appender->doAppend(event);
  108|   234k|			++result;
  109|   234k|		}
  110|   234k|	}
  111|   234k|	return result;
  112|   234k|}
_ZNK7log4cxx7helpers22AppenderAttachableImpl15getAllAppendersEv:
  121|      1|{
  122|      1|	AppenderList result;
  123|      1|	if (m_priv)
  ------------------
  |  Branch (123:6): [True: 1, False: 0]
  ------------------
  124|      1|		result = *m_priv->getAppenders();
  125|      1|	return result;
  126|      1|}
_ZN7log4cxx7helpers22AppenderAttachableImpl18removeAllAppendersEv:
  158|      1|{
  159|      1|	if (m_priv)
  ------------------
  |  Branch (159:6): [True: 1, False: 0]
  ------------------
  160|      1|	{
  161|      1|		auto allAppenders = m_priv->getAppenders();
  162|      1|		for (auto& appender : *allAppenders)
  ------------------
  |  Branch (162:23): [True: 1, False: 1]
  ------------------
  163|      1|			appender->close();
  164|      1|		m_priv->setAppenders({});
  165|      1|	}
  166|      1|}
_ZN7log4cxx7helpers22AppenderAttachableImpl16replaceAppendersERKNSt3__16vectorINS2_10shared_ptrINS_8AppenderEEENS2_9allocatorIS6_EEEE:
  223|      1|{
  224|      1|	if (m_priv)
  ------------------
  |  Branch (224:6): [True: 0, False: 1]
  ------------------
  225|      0|	{
  226|      0|		auto allAppenders = m_priv->getAppenders();
  227|      0|		for (auto& a : *allAppenders)
  ------------------
  |  Branch (227:16): [True: 0, False: 0]
  ------------------
  228|      0|			a->close();
  229|      0|		m_priv->setAppenders(newList);
  230|      0|	}
  231|      1|	else
  232|      1|		m_priv = std::make_unique<priv_data>(newList);
  233|      1|}
_ZNK7log4cxx7helpers22AppenderAttachableImpl9priv_data12getAppendersEv:
   46|   234k|	{
   47|       |#ifdef __cpp_lib_atomic_shared_ptr
   48|       |		return pAppenderList.load(std::memory_order_acquire);
   49|       |#else // !defined(__cpp_lib_atomic_shared_ptr)
   50|   234k|		std::lock_guard<std::mutex> lock( m_mutex );
   51|   234k|		return pAppenderList;
   52|   234k|#endif // !defined(__cpp_lib_atomic_shared_ptr)
   53|   234k|	}
_ZN7log4cxx7helpers22AppenderAttachableImpl9priv_data12setAppendersERKNSt3__16vectorINS3_10shared_ptrINS_8AppenderEEENS3_9allocatorIS7_EEEE:
   57|      1|	{
   58|       |#ifdef __cpp_lib_atomic_shared_ptr
   59|       |		pAppenderList.store(std::make_shared<AppenderList>(newList), std::memory_order_release);
   60|       |#else // !defined(__cpp_lib_atomic_shared_ptr)
   61|      1|		std::lock_guard<std::mutex> lock( m_mutex );
   62|      1|		pAppenderList = std::make_shared<const AppenderList>(newList);
   63|      1|#endif // !defined(__cpp_lib_atomic_shared_ptr)
   64|      1|	}
_ZN7log4cxx7helpers22AppenderAttachableImpl9priv_dataC2ERKNSt3__16vectorINS3_10shared_ptrINS_8AppenderEEENS3_9allocatorIS7_EEEE:
   41|      1|		: pAppenderList{ std::make_shared<const AppenderList>(newList) }
   42|      1|	{}

_ZN7log4cxx16AppenderSkeletonC2Ev:
   40|      1|	:   m_priv(std::make_unique<AppenderSkeletonPrivate>())
   41|      1|{
   42|       |
   43|      1|}
_ZN7log4cxx16AppenderSkeletonD2Ev:
   51|      1|AppenderSkeleton::~AppenderSkeleton() {}
_ZN7log4cxx16AppenderSkeleton15activateOptionsERNS_7helpers4PoolE:
   54|      1|{
   55|      1|}
_ZNK7log4cxx16AppenderSkeleton21isAsSevereAsThresholdERKNSt3__110shared_ptrINS_5LevelEEE:
   93|   234k|{
   94|   234k|	return ((level == 0) || level->isGreaterOrEqual(m_priv->threshold));
  ------------------
  |  Branch (94:10): [True: 0, False: 234k]
  |  Branch (94:26): [True: 234k, False: 0]
  ------------------
   95|   234k|}
_ZN7log4cxx16AppenderSkeleton8doAppendERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS_7helpers4PoolE:
   98|   234k|{
   99|   234k|	std::lock_guard<std::recursive_mutex> lock(m_priv->mutex);
  100|       |
  101|   234k|	doAppendImpl( LOG4CXX_APPEND_PARAMETERS );
  ------------------
  |  |   93|   234k|#define LOG4CXX_APPEND_PARAMETERS event, p
  ------------------
  102|   234k|}
_ZN7log4cxx16AppenderSkeleton12doAppendImplERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS_7helpers4PoolE:
  105|   234k|{
  106|   234k|	if (m_priv->closed)
  ------------------
  |  Branch (106:6): [True: 0, False: 234k]
  ------------------
  107|      0|	{
  108|      0|		LogLog::warn(LOG4CXX_STR("Attempted to append to closed appender named [")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  109|      0|			+ m_priv->name + LOG4CXX_STR("]."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  110|      0|	}
  111|   234k|	else if (isAsSevereAsThreshold(event->getLevel()) && isAccepted(event))
  ------------------
  |  Branch (111:11): [True: 234k, False: 0]
  |  Branch (111:55): [True: 234k, False: 0]
  ------------------
  112|   234k|	{
  113|   234k|		append( LOG4CXX_APPEND_PARAMETERS );
  ------------------
  |  |   93|   234k|#define LOG4CXX_APPEND_PARAMETERS event, p
  ------------------
  114|   234k|	}
  115|   234k|}
_ZNK7log4cxx16AppenderSkeleton10isAcceptedERKNSt3__110shared_ptrINS_3spi12LoggingEventEEE:
  118|   234k|{
  119|   234k|	FilterPtr f = m_priv->headFilter;
  120|   234k|	while (f != 0)
  ------------------
  |  Branch (120:9): [True: 0, False: 234k]
  ------------------
  121|      0|	{
  122|      0|		switch (f->decide(event))
  123|      0|		{
  124|      0|			case Filter::DENY:
  ------------------
  |  Branch (124:4): [True: 0, False: 0]
  ------------------
  125|      0|				return false;
  126|       |
  127|      0|			case Filter::ACCEPT:
  ------------------
  |  Branch (127:4): [True: 0, False: 0]
  ------------------
  128|      0|				f = nullptr;
  129|      0|				break;
  130|       |
  131|      0|			default:
  ------------------
  |  Branch (131:4): [True: 0, False: 0]
  ------------------
  132|      0|			case Filter::NEUTRAL:
  ------------------
  |  Branch (132:4): [True: 0, False: 0]
  ------------------
  133|      0|				f = f->getNext();
  134|      0|		}
  135|      0|	}
  136|   234k|	return true;
  137|   234k|}
_ZNK7log4cxx16AppenderSkeleton9getLayoutEv:
  238|   234k|{
  239|   234k|	return m_priv->layout;
  240|   234k|}
_ZNK7log4cxx16AppenderSkeleton7getNameEv:
  243|      1|{
  244|      1|	return m_priv->name;
  245|      1|}
_ZN7log4cxx16AppenderSkeleton9setLayoutENSt3__110shared_ptrINS_6LayoutEEE:
  253|      1|{
  254|      1|	m_priv->layout = layout1;
  255|      1|}
_ZN7log4cxx16AppenderSkeleton7setNameERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
  258|      1|{
  259|      1|	m_priv->name.assign(name1);
  260|      1|}

_ZN7log4cxx7helpers14APRInitializerC2Ev:
   96|      1|	m_priv(std::make_unique<APRInitializerPrivate>())
   97|      1|{
   98|      1|	apr_pool_create(&m_priv->p, NULL);
  ------------------
  |  |  323|      1|    apr_pool_create_ex(newpool, parent, NULL, NULL)
  ------------------
   99|      1|	m_priv->startTime = Date::currentTime();
  100|      1|#if APR_HAS_THREADS
  101|      1|	apr_status_t stat = apr_threadkey_private_create(&m_priv->tlsKey, tlsDestructImpl, m_priv->p);
  102|       |	assert(stat == APR_SUCCESS);
  ------------------
  |  Branch (102:2): [True: 1, False: 0]
  ------------------
  103|      1|#endif
  104|      1|}
_ZN7log4cxx7helpers14APRInitializerD2Ev:
  107|      1|{
  108|      1|#if LOG4CXX_ABI_VERSION <= 15
  109|      1|	isDestructed = true;
  110|      1|#endif
  111|      1|#if APR_HAS_THREADS
  112|      1|	std::lock_guard<std::mutex> lock(m_priv->mutex);
  113|      1|	apr_threadkey_private_delete(m_priv->tlsKey);
  114|      1|#endif
  115|      1|}
_ZN7log4cxx7helpers14APRInitializer11getInstanceEv:
  124|    295|{
  125|    295|	static WideLife<apr_environment> env;
  126|    295|	static WideLife<APRInitializer> init;
  127|    295|	return init;
  128|    295|}
_ZN7log4cxx7helpers14APRInitializer11getRootPoolEv:
  144|      5|{
  145|      5|	return getInstance().m_priv->p;
  146|      5|}
_ZN7log4cxx7helpers14APRInitializer15findOrAddObjectEmNSt3__18functionIFNS2_10shared_ptrINS0_6ObjectEEEvEEE:
  176|    290|{
  177|    290|	std::lock_guard<std::mutex> lock(m_priv->mutex);
  178|    290|	if (m_priv->objects.empty())
  ------------------
  |  Branch (178:6): [True: 1, False: 289]
  ------------------
  179|      1|	{
  180|       |		// Ensure the internal logger has a longer life than other Log4cxx static data
  181|      1|		LogLog::debug(LOG4CXX_STR("Started"));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  182|      1|	}
  183|    290|	auto pItem = std::find_if(m_priv->objects.begin(), m_priv->objects.end()
  184|    290|		, [key](const IdentifiedObject& item) { return item.first == key; }
  185|    290|		);
  186|    290|	if (m_priv->objects.end() != pItem)
  ------------------
  |  Branch (186:6): [True: 288, False: 2]
  ------------------
  187|    288|		return pItem->second;
  188|      2|	m_priv->objects.emplace_back(key, creator());
  189|      2|	return m_priv->objects.back().second;
  190|    290|}
aprinitializer.cpp:_ZZN7log4cxx7helpers14APRInitializer15findOrAddObjectEmNSt3__18functionIFNS2_10shared_ptrINS0_6ObjectEEEvEEEENK3$_0clERKNS2_4pairImS6_EE:
  184|    289|		, [key](const IdentifiedObject& item) { return item.first == key; }
_ZN7log4cxx7helpers14APRInitializer21APRInitializerPrivateC2Ev:
   43|      1|		p(0),
   44|      1|		startTime(0),
   45|      1|		tlsKey(0){
   46|       |
   47|      1|	}
_ZN7log4cxx7helpers14APRInitializer21APRInitializerPrivateD2Ev:
   49|      1|	{
   50|       |		// Delete in reverse order
   51|      3|		while (!objects.empty())
  ------------------
  |  Branch (51:10): [True: 2, False: 1]
  ------------------
   52|      2|			objects.pop_back();
   53|      1|	}
aprinitializer.cpp:_ZN12_GLOBAL__N_115apr_environmentC2Ev:
   83|      1|    {
   84|      1|        apr_initialize();
   85|      1|    }
aprinitializer.cpp:_ZN12_GLOBAL__N_115apr_environmentD2Ev:
   87|      1|    {
   88|      1|        apr_terminate();
   89|      1|    }

_ZN7log4cxx7helpers11AsyncBufferC2Ev:
   94|   234k|{}
_ZN7log4cxx7helpers11AsyncBufferD2Ev:
  106|   234k|{
  107|   234k|}
_ZNK7log4cxx7helpers11AsyncBuffer5emptyEv:
  113|   469k|{
  114|   469k|	bool result{ true };
  115|   469k|	if (m_priv)
  ------------------
  |  Branch (115:6): [True: 0, False: 469k]
  ------------------
  116|      0|	{
  117|      0|		result = m_priv->data.empty();
  118|       |#if LOG4CXX_ASYNC_BUFFER_SUPPORTS_FMT
  119|       |		if (result)
  120|       |			result = (0 == m_priv->fmt_string.size());
  121|       |#if LOG4CXX_WCHAR_T_API || LOG4CXX_LOGCHAR_IS_WCHAR
  122|       |		if (result)
  123|       |			result = (0 == m_priv->fmt_wstring.size());
  124|       |#endif // LOG4CXX_WCHAR_T_API || LOG4CXX_LOGCHAR_IS_WCHAR
  125|       |#endif
  126|      0|	}
  127|   469k|	return result;
  128|   469k|}

_ZN7log4cxx7helpers10ByteBufferC2EPcm:
   39|      1|	: m_priv(std::make_unique<ByteBufferPriv>(data1, capacity))
   40|      1|{
   41|      1|}
_ZN7log4cxx7helpers10ByteBufferD2Ev:
   44|      1|{
   45|      1|}
_ZN7log4cxx7helpers10ByteBuffer5carryEv:
   54|      1|{
   55|      1|	auto available = remaining();
   56|      1|	memmove(m_priv->base, current(), available);
   57|      1|	m_priv->lim = m_priv->cap;
   58|      1|	m_priv->pos = available;
   59|      1|}
_ZN7log4cxx7helpers10ByteBuffer4flipEv:
   62|      1|{
   63|      1|	m_priv->lim = m_priv->pos;
   64|      1|	m_priv->pos = 0;
   65|      1|}
_ZN7log4cxx7helpers10ByteBuffer7currentEv:
  118|      4|{
  119|      4|	return m_priv->base + m_priv->pos;
  120|      4|}
_ZNK7log4cxx7helpers10ByteBuffer9remainingEv:
  138|     10|{
  139|     10|	return m_priv->lim - m_priv->pos;
  140|     10|}
_ZN7log4cxx7helpers10ByteBuffer18increment_positionEm:
  143|      2|{
  144|      2|    auto available = remaining();
  145|      2|    m_priv->pos += byteCount < available ? byteCount : available;
  ------------------
  |  Branch (145:20): [True: 1, False: 1]
  ------------------
  146|      2|    return remaining();
  147|      2|}
_ZN7log4cxx7helpers10ByteBuffer14ByteBufferPrivC2EPcm:
   30|      1|		base(data1), pos(0), lim(capacity), cap(capacity) {}

_ZN7log4cxx7helpers14CharsetDecoderC2Ev:
  510|      1|{
  511|      1|}
_ZN7log4cxx7helpers14CharsetDecoderD2Ev:
  515|      1|{
  516|      1|}
_ZN7log4cxx7helpers14CharsetDecoder18getISOLatinDecoderEv:
  560|      1|{
  561|      1|	return std::make_shared<ISOLatinCharsetDecoder>();
  562|      1|}
_ZN7log4cxx7helpers22ISOLatinCharsetDecoderC2Ev:
  360|      1|		{
  361|      1|		}
_ZN7log4cxx7helpers22ISOLatinCharsetDecoder6decodeERNS0_10ByteBufferERNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE:
  370|      1|		{
  371|      1|			auto availableByteCount = in.remaining();
  372|      1|			auto src = in.current();
  373|      1|			auto srcEnd = src + availableByteCount;
  374|       |
  375|  1.02k|			while (src < srcEnd)
  ------------------
  |  Branch (375:11): [True: 1.02k, False: 1]
  ------------------
  376|  1.02k|			{
  377|  1.02k|				auto sv = static_cast<unsigned int>(static_cast<unsigned char>(*src++));
  378|  1.02k|				Transcoder::encode(sv, out);
  379|  1.02k|			}
  380|      1|			in.increment_position(availableByteCount);
  381|       |
  382|      1|			return APR_SUCCESS;
  ------------------
  |  |  225|      1|#define APR_SUCCESS 0
  ------------------
  383|      1|		}

_ZN7log4cxx7helpers5ClassC2Ev:
  100|    230|{
  101|    230|}
_ZN7log4cxx7helpers5Class11getRegistryEv:
  125|    234|{
  126|    234|	static WideLife<ClassMap> registry;
  127|    234|	return registry;
  128|    234|}
_ZN7log4cxx7helpers5Class7forNameERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
  131|      2|{
  132|      2|	LogString lowerName(StringHelper::toLowerCase(className));
  133|       |	//
  134|       |	//  check registry using full class name
  135|       |	//
  136|      2|	const Class* clazz = getRegistry()[lowerName];
  137|       |
  138|      2|	if (clazz == 0)
  ------------------
  |  Branch (138:6): [True: 2, False: 0]
  ------------------
  139|      2|	{
  140|      2|		LogString::size_type pos = className.find_last_of(LOG4CXX_STR(".$"));
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
  141|       |
  142|      2|		if (pos != LogString::npos)
  ------------------
  |  Branch (142:7): [True: 2, False: 0]
  ------------------
  143|      2|		{
  144|      2|			LogString terminalName(lowerName, pos + 1, LogString::npos);
  145|      2|			clazz = getRegistry()[terminalName];
  146|       |
  147|      2|			if (clazz == 0)
  ------------------
  |  Branch (147:8): [True: 0, False: 2]
  ------------------
  148|      0|			{
  149|      0|				registerClasses();
  150|      0|				clazz = getRegistry()[lowerName];
  151|       |
  152|      0|				if (clazz == 0)
  ------------------
  |  Branch (152:9): [True: 0, False: 0]
  ------------------
  153|      0|				{
  154|      0|					clazz = getRegistry()[terminalName];
  155|      0|				}
  156|      0|			}
  157|      2|		}
  158|      0|		else
  159|      0|		{
  160|      0|			registerClasses();
  161|      0|			clazz = getRegistry()[lowerName];
  162|      0|		}
  163|      2|	}
  164|       |
  165|      2|	if (clazz == 0)
  ------------------
  |  Branch (165:6): [True: 0, False: 2]
  ------------------
  166|      0|	{
  167|      0|		throw ClassNotFoundException(className);
  168|      0|	}
  169|       |
  170|      2|	return *clazz;
  171|      2|}
_ZN7log4cxx7helpers5Class13registerClassERKS1_:
  174|    230|{
  175|    230|	getRegistry()[StringHelper::toLowerCase(newClass.getName())] = &newClass;
  176|    230|	return true;
  177|    230|}

_ZN7log4cxx7helpers17ClassRegistrationC2EPFRKNS0_5ClassEvE:
   25|    230|{
   26|    230|	Class::registerClass((*accessor)());
   27|    230|}

_ZN7log4cxx3spi12ConfiguratorC2Ev:
   53|      1|{
   54|      1|}
_ZN7log4cxx3spi12Configurator10propertiesEv:
   57|      1|{
   58|      1|	auto& result = getInstance().second;
   59|      1|	if (result.isEmpty())
  ------------------
  |  Branch (59:6): [True: 1, False: 0]
  ------------------
   60|      1|		helpers::System::addProgramFilePathComponents(result);
   61|      1|	return result;
   62|      1|}
configurator.cpp:_ZN12_GLOBAL__N_111getInstanceEv:
   42|      1|	{
   43|      1|		using ConfiguratorObject = helpers::SingletonHolder<ConfiguratorProperties>;
   44|      1|		auto result = helpers::APRInitializer::getOrAddUnique<ConfiguratorObject>
   45|      1|			( []() -> helpers::ObjectPtr
   46|      1|				{ return std::make_shared<ConfiguratorObject>(); }
   47|      1|			);
   48|      1|		return result->value();
   49|      1|	}
configurator.cpp:_ZZN12_GLOBAL__N_111getInstanceEvENK3$_0clEv:
   46|      1|				{ return std::make_shared<ConfiguratorObject>(); }

_ZN7log4cxx7helpers4Date11currentTimeEv:
   67|   234k|log4cxx_time_t Date::currentTime(){
   68|   234k|	return getCurrentTimeFn ? getCurrentTimeFn() : getCurrentTimeStd();
  ------------------
  |  Branch (68:9): [True: 0, False: 234k]
  ------------------
   69|   234k|}
_ZN7log4cxx7helpers4Date17getCurrentTimeStdEv:
   71|   234k|log4cxx_time_t Date::getCurrentTimeStd(){
   72|   234k|	return std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
   73|   234k|}

_ZN7log4cxx3spi25DefaultRepositorySelectorC1ENSt3__110shared_ptrINS0_16LoggerRepositoryEEE:
   30|      1|	: m_priv(std::make_unique<DefaultRepositorySelectorPrivate>())
   31|      1|{
   32|      1|	m_priv->repository = repository1;
   33|      1|}
_ZN7log4cxx3spi25DefaultRepositorySelectorD2Ev:
   35|      1|DefaultRepositorySelector::~DefaultRepositorySelector() {}
_ZN7log4cxx3spi25DefaultRepositorySelector19getLoggerRepositoryEv:
   38|    289|{
   39|    289|	return m_priv->repository;
   40|    289|}

_ZN7log4cxx4FileC2EPKc:
   92|      1|	: m_priv(std::make_unique<FilePrivate>(decodeLS(name1)))
   93|      1|{
   94|      1|}
_ZN7log4cxx4FileC2ERKS0_:
  128|      1|	: m_priv(std::make_unique<FilePrivate>(src.m_priv->path, src.m_priv->autoDelete))
  129|      1|{
  130|      1|}
_ZN7log4cxx4FileD2Ev:
  147|      2|{
  148|      2|	if(m_priv->autoDelete){
  ------------------
  |  Branch (148:5): [True: 0, False: 2]
  ------------------
  149|      0|		deleteFile();
  150|      0|	}
  151|      2|}
_ZNK7log4cxx4File11FilePrivate7getPathEv:
  180|      1|{
  181|      1|	return this->apr_path;
  182|      1|}
_ZN7log4cxx4File11FilePrivate12set_apr_pathEv:
  185|      2|{
  186|      2|	this->encodedPath.clear();
  187|      2|	int style = APR_FILEPATH_ENCODING_UNKNOWN;
  ------------------
  |  |  404|      2|#define APR_FILEPATH_ENCODING_UNKNOWN  0
  ------------------
  188|      2|	apr_filepath_encoding(&style, this->p.getAPRPool());
  189|      2|	if (style == APR_FILEPATH_ENCODING_UTF8)
  ------------------
  |  |  410|      2|#define APR_FILEPATH_ENCODING_UTF8     2
  ------------------
  |  Branch (189:6): [True: 0, False: 2]
  ------------------
  190|      0|	{
  191|      0|		Transcoder::encodeUTF8(this->path, this->encodedPath);
  192|      0|	}
  193|      2|	else
  194|      2|	{
  195|      2|		Transcoder::encode(this->path, this->encodedPath);
  196|      2|	}
  197|       |
  198|      2|	for (auto& c : this->encodedPath)
  ------------------
  |  Branch (198:15): [True: 60, False: 2]
  ------------------
  199|     60|	{
  200|     60|		if (c == '\\')
  ------------------
  |  Branch (200:7): [True: 0, False: 60]
  ------------------
  201|      0|		{
  202|      0|			c = '/';
  203|      0|		}
  204|     60|	}
  205|      2|	this->apr_path = this->encodedPath.c_str();
  206|      2|}
_ZNK7log4cxx4File10getAPRPathEv:
  209|      1|{
  210|      1|	return m_priv->getPath();
  211|      1|}
_ZN7log4cxx4File11FilePrivateC2ERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   37|      1|		: path(path)
   38|      1|	{
   39|      1|		set_apr_path();
   40|      1|	}
file.cpp:_ZL8decodeLSIcENSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEPKT_:
   66|      1|{
   67|      1|	LogString dst;
   68|       |
   69|      1|	if (src != 0)
  ------------------
  |  Branch (69:6): [True: 1, False: 0]
  ------------------
   70|      1|	{
   71|      1|		Transcoder::decode(src, dst);
   72|      1|	}
   73|       |
   74|      1|	return dst;
   75|      1|}
_ZN7log4cxx4File11FilePrivateC2ERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEb:
   43|      1|		: path(path)
   44|      1|		, autoDelete(autoDelete)
   45|      1|	{
   46|      1|		set_apr_path();
   47|      1|	}

_ZN7log4cxx7helpers15FileInputStream22FileInputStreamPrivate4openEv:
   56|      1|{
   57|      1|	apr_fileperms_t perm = APR_OS_DEFAULT;
  ------------------
  |  |  112|      1|#define APR_OS_DEFAULT APR_FPROT_OS_DEFAULT /**< @deprecated @see APR_FPROT_OS_DEFAULT */
  |  |  ------------------
  |  |  |  |   94|      1|#define APR_FPROT_OS_DEFAULT  0x0FFF /**< use OS's default permissions */
  |  |  ------------------
  ------------------
   58|      1|	apr_int32_t flags = APR_READ;
  ------------------
  |  |   93|      1|#define APR_READ             APR_FOPEN_READ       /**< @deprecated @see APR_FOPEN_READ */
  |  |  ------------------
  |  |  |  |   54|      1|#define APR_FOPEN_READ       0x00001  /**< Open the file for reading */
  |  |  ------------------
  ------------------
   59|      1|	apr_status_t stat = apr_file_open(&this->fileptr, this->path.getAPRPath(), flags, perm, this->pool.getAPRPool());
   60|       |
   61|      1|	if (stat != APR_SUCCESS)
  ------------------
  |  |  225|      1|#define APR_SUCCESS 0
  ------------------
  |  Branch (61:6): [True: 0, False: 1]
  ------------------
   62|      0|	{
   63|      0|		throw IOException(this->path.getAPRPath(), stat);
   64|      0|	}
   65|      1|}
_ZN7log4cxx7helpers15FileInputStreamC2ERKNS_4FileE:
   69|      1|	m_priv(std::make_unique<FileInputStreamPrivate>(aFile))
   70|      1|{
   71|      1|	m_priv->open();
   72|      1|}
_ZN7log4cxx7helpers15FileInputStreamD2Ev:
   76|      1|{
   77|      1|	if (m_priv->fileptr)
  ------------------
  |  Branch (77:6): [True: 1, False: 0]
  ------------------
   78|      1|	{
   79|      1|		apr_file_close(m_priv->fileptr);
   80|      1|	}
   81|      1|}
_ZN7log4cxx7helpers15FileInputStream4readERNS0_10ByteBufferE:
  100|      2|{
  101|      2|	apr_size_t bytesRead = buf.remaining();
  102|      2|	apr_status_t stat = apr_file_read(m_priv->fileptr, buf.current(), &bytesRead);
  103|      2|	int retval = -1;
  104|       |
  105|      2|	if (!APR_STATUS_IS_EOF(stat))
  ------------------
  |  |  567|      2|#define APR_STATUS_IS_EOF(s)            ((s) == APR_EOF)
  |  |  ------------------
  |  |  |  |  461|      2|#define APR_EOF            (APR_OS_START_STATUS + 14)
  |  |  |  |  ------------------
  |  |  |  |  |  |  136|      2|#define APR_OS_START_STATUS    (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  117|      2|#define APR_OS_START_ERROR     20000
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define APR_OS_START_STATUS    (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  123|      2|#define APR_OS_ERRSPACE_SIZE 50000
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (105:6): [True: 1, False: 1]
  ------------------
  106|      1|	{
  107|      1|		if (stat != APR_SUCCESS)
  ------------------
  |  |  225|      1|#define APR_SUCCESS 0
  ------------------
  |  Branch (107:7): [True: 0, False: 1]
  ------------------
  108|      0|		{
  109|      0|			throw IOException(stat);
  110|      0|		}
  111|       |
  112|      1|		buf.increment_position(bytesRead);
  113|      1|		retval = (int)bytesRead;
  114|      1|	}
  115|       |
  116|      2|	return retval;
  117|      2|}
_ZN7log4cxx7helpers15FileInputStream22FileInputStreamPrivateC2ERKNS_4FileE:
   31|      1|		: path(aFile)
   32|      1|		{}

_ZN7log4cxx7pattern14FormattingInfoC1Ebii:
   59|      2|	m_priv(std::make_unique<FormattingInfoPrivate>(leftAlign1, minLength1, maxLength1))
   60|      2|{
   61|      2|}
_ZN7log4cxx7pattern14FormattingInfoD2Ev:
   63|      2|FormattingInfo::~FormattingInfo() {}
_ZN7log4cxx7pattern14FormattingInfo10getDefaultEv:
   70|     23|{
   71|       |	static helpers::WideLife<FormattingInfoPtr> def= std::make_shared<FormattingInfo>(false, 0, INT_MAX);
   72|     23|	return def;
   73|     23|}
_ZNK7log4cxx7pattern14FormattingInfo11adjustFieldEmRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   88|  2.34M|{
   89|  2.34M|	if (fieldStart > buffer.length())
  ------------------
  |  Branch (89:6): [True: 0, False: 2.34M]
  ------------------
   90|      0|	{
   91|      0|		return;
   92|      0|	}
   93|       |
   94|  2.34M|	const LogString::size_type rawLength = buffer.length() - fieldStart;
   95|  2.34M|	const LogString::size_type maxLength = static_cast<LogString::size_type>(m_priv->maxLength);
   96|  2.34M|	const LogString::size_type minLength = static_cast<LogString::size_type>(m_priv->minLength);
   97|       |
   98|  2.34M|	if (rawLength > maxLength)
  ------------------
  |  Branch (98:6): [True: 0, False: 2.34M]
  ------------------
   99|      0|	{
  100|      0|		buffer.erase(buffer.begin() + fieldStart,
  101|      0|			buffer.begin() + fieldStart + (rawLength - maxLength));
  102|      0|	}
  103|  2.34M|	else if (rawLength < minLength)
  ------------------
  |  Branch (103:11): [True: 234k, False: 2.11M]
  ------------------
  104|   234k|	{
  105|   234k|		if (m_priv->leftAlign)
  ------------------
  |  Branch (105:7): [True: 0, False: 234k]
  ------------------
  106|      0|		{
  107|      0|			buffer.append(minLength - rawLength, (logchar) 0x20 /* ' ' */);
  108|      0|		}
  109|   234k|		else
  110|   234k|		{
  111|   234k|			buffer.insert(fieldStart, minLength - rawLength, 0x20 /* ' ' */);
  112|   234k|		}
  113|   234k|	}
  114|  2.34M|}
_ZNK7log4cxx7pattern14FormattingInfo13isLeftAlignedEv:
  117|      1|{
  118|      1|	return m_priv->leftAlign;
  119|      1|}
_ZNK7log4cxx7pattern14FormattingInfo12getMaxLengthEv:
  127|   234k|{
  128|   234k|	return m_priv->maxLength;
  129|   234k|}
_ZN7log4cxx7pattern14FormattingInfo21FormattingInfoPrivateC2Ebii:
   29|      2|		minLength(minLength1),
   30|      2|		maxLength(maxLength1),
   31|      2|		leftAlign(leftAlign1) {}

_ZN7log4cxx9HierarchyC1Ev:
   75|      1|	m_priv(std::make_unique<HierarchyPrivate>())
   76|      1|{
   77|      1|}
_ZN7log4cxx9HierarchyD2Ev:
   80|      1|{
   81|      1|	std::lock_guard<std::recursive_mutex> lock(m_priv->mutex);
   82|      1|	for (auto& item : m_priv->loggers)
  ------------------
  |  Branch (82:18): [True: 0, False: 1]
  ------------------
   83|      0|	{
   84|      0|		if (auto& pLogger = item.second)
  ------------------
  |  Branch (84:13): [True: 0, False: 0]
  ------------------
   85|      0|		{
   86|      0|			pLogger->removeHierarchy();
   87|      0|			pLogger->removeAllAppenders();
   88|      0|		}
   89|      0|	}
   90|      1|	if (m_priv->root)
  ------------------
  |  Branch (90:6): [True: 1, False: 0]
  ------------------
   91|      1|	{
   92|      1|		m_priv->root->removeHierarchy();
   93|      1|		m_priv->root->removeAllAppenders();
   94|      1|	}
   95|      1|}
_ZN7log4cxx9Hierarchy20fireAddAppenderEventEPKNS_6LoggerEPKNS_8AppenderE:
  198|      1|{
  199|      1|	setConfigured(true);
  200|      1|	HierarchyEventListenerList clonedList;
  201|      1|	{
  202|      1|		std::lock_guard<std::mutex> lock(m_priv->listenerMutex);
  203|      1|		clonedList = m_priv->listeners;
  204|      1|	}
  205|       |
  206|      1|	for (auto& item : clonedList)
  ------------------
  |  Branch (206:18): [True: 0, False: 1]
  ------------------
  207|      0|		item->addAppenderEvent(logger, appender);
  208|      1|}
_ZNK7log4cxx9Hierarchy13getRootLoggerEv:
  289|    289|{
  290|    289|	std::lock_guard<std::recursive_mutex> lock(m_priv->mutex);
  291|    289|	if (!m_priv->root)
  ------------------
  |  Branch (291:6): [True: 1, False: 288]
  ------------------
  292|      1|	{
  293|      1|		m_priv->root = std::make_shared<RootLogger>(Level::getDebug());
  294|      1|		m_priv->root->setHierarchy(const_cast<Hierarchy*>(this));
  295|      1|	}
  296|       |
  297|    289|	return m_priv->root;
  298|    289|}
_ZNK7log4cxx9Hierarchy10isDisabledEi:
  301|   234k|{
  302|   234k|	return m_priv->thresholdInt > level;
  303|   234k|}
_ZN7log4cxx9Hierarchy18ensureIsConfiguredENSt3__18functionIFvvEEE:
  306|    288|{
  307|    288|	std::lock_guard<std::recursive_mutex> lock(m_priv->configuredMutex);
  308|    288|	if (!m_priv->configured && m_priv->alreadyTriedMethod != configurator.target_type().name())
  ------------------
  |  Branch (308:6): [True: 0, False: 288]
  |  Branch (308:29): [True: 0, False: 0]
  ------------------
  309|      0|	{
  310|      0|		configurator();
  311|      0|		m_priv->alreadyTriedMethod = configurator.target_type().name();
  312|      0|	}
  313|    288|}
_ZN7log4cxx9Hierarchy14updateChildrenEPKNS_6LoggerE:
  434|      1|{
  435|      1|	for (auto& item : m_priv->loggers)
  ------------------
  |  Branch (435:18): [True: 0, False: 1]
  ------------------
  436|      0|	{
  437|      0|		for (auto l = item.second; l; l = l->getParent())
  ------------------
  |  Branch (437:30): [True: 0, False: 0]
  ------------------
  438|      0|		{
  439|      0|			if (l->getParent().get() == parent)
  ------------------
  |  Branch (439:8): [True: 0, False: 0]
  ------------------
  440|      0|			{
  441|      0|				item.second->updateThreshold();
  442|      0|				break;
  443|      0|			}
  444|      0|		}
  445|      0|	}
  446|      1|}
_ZN7log4cxx9Hierarchy13setConfiguredEb:
  449|      2|{
  450|      2|	std::unique_lock<std::recursive_mutex> lock(m_priv->configuredMutex, std::try_to_lock);
  451|      2|	if (lock.owns_lock()) // Not being auto-configured?
  ------------------
  |  Branch (451:6): [True: 2, False: 0]
  ------------------
  452|      2|		m_priv->configured = newValue;
  453|      2|}
_ZN7log4cxx9Hierarchy6createEv:
  462|      1|{
  463|      1|	HierarchyPtr ret(new Hierarchy);
  464|      1|	return ret;
  465|      1|}
_ZN7log4cxx9Hierarchy16HierarchyPrivateC2Ev:
   43|      1|		: configured(false)
   44|      1|		, emittedNoAppenderWarning(false)
   45|      1|		, emittedNoResourceBundleWarning(false)
   46|      1|		, thresholdInt(Level::ALL_INT)
   47|      1|	{
   48|      1|	}

_ZN7log4cxx7helpers11InputStreamC2Ev:
   27|      1|{
   28|      1|}
_ZN7log4cxx7helpers11InputStreamD2Ev:
   31|      1|{
   32|      1|}

_ZN7log4cxx7helpers17InputStreamReaderC2ERKNSt3__110shared_ptrINS0_11InputStreamEEERKNS3_INS0_14CharsetDecoderEEE:
   51|      1|	: m_priv(std::make_unique<InputStreamReaderPrivate>(in1, dec1))
   52|      1|{
   53|      1|	if (!in1)
  ------------------
  |  Branch (53:6): [True: 0, False: 1]
  ------------------
   54|      0|	{
   55|      0|		throw NullPointerException(LOG4CXX_STR("InputStream parameter"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
   56|      0|	}
   57|       |
   58|      1|	if (!dec1)
  ------------------
  |  Branch (58:6): [True: 0, False: 1]
  ------------------
   59|      0|	{
   60|      0|		throw NullPointerException(LOG4CXX_STR("CharsetDecoder parameter"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
   61|      0|	}
   62|      1|}
_ZN7log4cxx7helpers17InputStreamReaderD2Ev:
   65|      1|{
   66|      1|}
_ZN7log4cxx7helpers17InputStreamReader4readERNS0_4PoolE:
   74|      1|{
   75|      1|	const size_t BUFSIZE = 4096;
   76|      1|	char stackStorage[BUFSIZE];
   77|      1|	ByteBuffer buf(stackStorage, BUFSIZE);
   78|      1|	LogString output;
   79|      1|	log4cxx_status_t stat{ 0 };
   80|       |
   81|       |	// read whole file
   82|      2|	while (m_priv->in->read(buf) >= 0)
  ------------------
  |  Branch (82:9): [True: 1, False: 1]
  ------------------
   83|      1|	{
   84|      1|		buf.flip();
   85|      1|		auto lastAvailableCount = buf.remaining();
   86|      1|		stat = m_priv->dec->decode(buf, output);
   87|      1|		if (buf.remaining() == lastAvailableCount)
  ------------------
  |  Branch (87:7): [True: 0, False: 1]
  ------------------
   88|      0|		{
   89|      0|			if (stat == 0)
  ------------------
  |  Branch (89:8): [True: 0, False: 0]
  ------------------
   90|      0|				stat = -1;
   91|      0|			break;
   92|      0|		}
   93|      1|		buf.carry();
   94|      1|	}
   95|      1|	if (stat != 0 && 0 < buf.remaining())
  ------------------
  |  Branch (95:6): [True: 0, False: 1]
  |  Branch (95:19): [True: 0, False: 0]
  ------------------
   96|      0|	{
   97|      0|		auto toHexDigit = [](int ch) -> int
   98|      0|		{
   99|      0|			return (10 <= ch ? (0x61 - 10) : 0x30) + ch;
  100|      0|		};
  101|      0|		LogString msg(LOG4CXX_STR("Unable to decode character 0x"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  102|      0|		auto ch = static_cast<unsigned int>(*buf.current());
  103|      0|		msg.push_back(toHexDigit((ch & 0xF0) >> 4));
  104|      0|		msg.push_back(toHexDigit((ch & 0xF)));
  105|      0|		msg += LOG4CXX_STR(" at offset ");
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  106|      0|		StringHelper::toString(output.size(), msg);
  107|      0|		throw RuntimeException(msg);
  108|      0|	}
  109|       |
  110|      1|	return output;
  111|      1|}
_ZN7log4cxx7helpers17InputStreamReader24InputStreamReaderPrivateC2ERKNSt3__110shared_ptrINS0_11InputStreamEEERKNS4_INS0_14CharsetDecoderEEE:
   35|      1|		in(in1), dec(dec1) {}

_ZN7log4cxx6LayoutD2Ev:
   26|      1|Layout::~Layout() {}
_ZNK7log4cxx6Layout6formatERNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKNS1_10shared_ptrINS_3spi12LoggingEventEEE:
   35|      1|{
   36|      1|	Pool p;
   37|      1|	format(output, event, p);
   38|      1|}
_ZNK7log4cxx6Layout31getFormattedEventCharacterCountEv:
   82|      1|{
   83|      1|	auto exampleEvent = std::make_shared<spi::LoggingEvent>
   84|      1|		( LOG4CXX_STR("example.logger")
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   85|      1|		, Level::getDebug()
   86|      1|		, LOG4CXX_LOCATION
  ------------------
  |  |  171|      1|#define LOG4CXX_LOCATION ::LOG4CXX_NS::spi::LocationInfo(__FILE__,         \
  |  |  172|      1|	::LOG4CXX_NS::spi::LocationInfo::calcShortFileName(__FILE__), \
  |  |  173|      1|	__LOG4CXX_FUNC__, \
  |  |  ------------------
  |  |  |  |  159|      1|		#define __LOG4CXX_FUNC__ __PRETTY_FUNCTION__
  |  |  ------------------
  |  |  174|       |	__LINE__)
  ------------------
   87|      1|		, LogString()
   88|      1|		);
   89|      1|	LogString text;
   90|      1|	format(text, exampleEvent);
   91|      1|	return text.size();
   92|      1|}

_ZN7log4cxx5Level6getOffEv:
   34|      1|{
   35|      1|	static WideLife<LevelPtr> offLevel = std::make_shared<Level>(Level::OFF_INT, LOG4CXX_STR("OFF"), 0);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   36|      1|	return offLevel;
   37|      1|}
_ZN7log4cxx5Level8getFatalEv:
   40|      1|{
   41|      1|	static WideLife<LevelPtr> fatalLevel = std::make_shared<Level>(Level::FATAL_INT, LOG4CXX_STR("FATAL"), 0);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   42|      1|	return fatalLevel;
   43|      1|}
_ZN7log4cxx5Level8getErrorEv:
   46|      1|{
   47|      1|	static WideLife<LevelPtr> errorLevel = std::make_shared<Level>(Level::ERROR_INT, LOG4CXX_STR("ERROR"), 3);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   48|      1|	return errorLevel;
   49|      1|}
_ZN7log4cxx5Level7getWarnEv:
   52|      1|{
   53|      1|	static WideLife<LevelPtr> warnLevel = std::make_shared<Level>(Level::WARN_INT, LOG4CXX_STR("WARN"), 4);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   54|      1|	return warnLevel;
   55|      1|}
_ZN7log4cxx5Level7getInfoEv:
   58|      1|{
   59|      1|	static WideLife<LevelPtr> infoLevel = std::make_shared<Level>(Level::INFO_INT, LOG4CXX_STR("INFO"), 6);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   60|      1|	return infoLevel;
   61|      1|}
_ZN7log4cxx5Level8getDebugEv:
   64|      4|{
   65|      4|	static WideLife<LevelPtr> debugLevel = std::make_shared<Level>(Level::DEBUG_INT, LOG4CXX_STR("DEBUG"), 7);
  ------------------
  |  |   51|      4|		#define LOG4CXX_STR(str) str
  ------------------
   66|      4|	return debugLevel;
   67|      4|}
_ZN7log4cxx5Level8getTraceEv:
   70|      1|{
   71|      1|	static WideLife<LevelPtr> traceLevel = std::make_shared<Level>(Level::TRACE_INT, LOG4CXX_STR("TRACE"), 7);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   72|      1|	return traceLevel;
   73|      1|}
_ZN7log4cxx5Level6getAllEv:
   77|      3|{
   78|      3|	static WideLife<LevelPtr> allLevel = std::make_shared<Level>(Level::ALL_INT, LOG4CXX_STR("ALL"), 7);
  ------------------
  |  |   51|      3|		#define LOG4CXX_STR(str) str
  ------------------
   79|      3|	return allLevel;
   80|      3|}
_ZN7log4cxx5LevelC2EiRKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEi:
   86|      8|	: level(level1), name(name1), syslogEquivalent(syslogEquivalent1)
   87|      8|{
   88|      8|}
_ZNK7log4cxx5Level8toStringEv:
   97|   234k|{
   98|   234k|	return name;
   99|   234k|}
_ZN7log4cxx5Level7getDataEv:
  108|      1|{
  109|      1|	static WideLife<DataPtr> data = std::make_shared<Data>(Data
  110|      1|		{ getOff()
  111|      1|		, getFatal()
  112|      1|		, getError()
  113|      1|		, getWarn()
  114|      1|		, getInfo()
  115|      1|		, getDebug()
  116|      1|		, getTrace()
  117|      1|		, getAll()
  118|      1|		});
  119|      1|	return data;
  120|      1|}
_ZN7log4cxx5Level9toLevelLSERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKNS1_10shared_ptrIS0_EE:
  231|      1|{
  232|      1|	const LogString trimmed(StringHelper::trim(sArg));
  233|      1|	const size_t len = trimmed.length();
  234|       |
  235|      1|	if (len == 4)
  ------------------
  |  Branch (235:6): [True: 0, False: 1]
  ------------------
  236|      0|	{
  237|      0|		if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("INFO"), LOG4CXX_STR("info")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              		if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("INFO"), LOG4CXX_STR("info")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (237:7): [True: 0, False: 0]
  ------------------
  238|      0|		{
  239|      0|			return getInfo();
  240|      0|		}
  241|       |
  242|      0|		if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("WARN"), LOG4CXX_STR("warn")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              		if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("WARN"), LOG4CXX_STR("warn")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (242:7): [True: 0, False: 0]
  ------------------
  243|      0|		{
  244|      0|			return getWarn();
  245|      0|		}
  246|      0|	}
  247|      1|	else
  248|      1|	{
  249|      1|		if (len == 5)
  ------------------
  |  Branch (249:7): [True: 0, False: 1]
  ------------------
  250|      0|		{
  251|      0|			if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("DEBUG"), LOG4CXX_STR("debug")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              			if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("DEBUG"), LOG4CXX_STR("debug")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (251:8): [True: 0, False: 0]
  ------------------
  252|      0|			{
  253|      0|				return getDebug();
  254|      0|			}
  255|       |
  256|      0|			if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("TRACE"), LOG4CXX_STR("trace")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              			if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("TRACE"), LOG4CXX_STR("trace")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (256:8): [True: 0, False: 0]
  ------------------
  257|      0|			{
  258|      0|				return getTrace();
  259|      0|			}
  260|       |
  261|      0|			if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("ERROR"), LOG4CXX_STR("error")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              			if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("ERROR"), LOG4CXX_STR("error")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (261:8): [True: 0, False: 0]
  ------------------
  262|      0|			{
  263|      0|				return getError();
  264|      0|			}
  265|       |
  266|      0|			if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("FATAL"), LOG4CXX_STR("fatal")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              			if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("FATAL"), LOG4CXX_STR("fatal")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (266:8): [True: 0, False: 0]
  ------------------
  267|      0|			{
  268|      0|				return getFatal();
  269|      0|			}
  270|      0|		}
  271|      1|		else
  272|      1|		{
  273|      1|			if (len == 3)
  ------------------
  |  Branch (273:8): [True: 1, False: 0]
  ------------------
  274|      1|			{
  275|      1|				if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("OFF"), LOG4CXX_STR("off")))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
              				if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("OFF"), LOG4CXX_STR("off")))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (275:9): [True: 0, False: 1]
  ------------------
  276|      0|				{
  277|      0|					return getOff();
  278|      0|				}
  279|       |
  280|      1|				if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("ALL"), LOG4CXX_STR("all")))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
              				if (StringHelper::equalsIgnoreCase(trimmed, LOG4CXX_STR("ALL"), LOG4CXX_STR("all")))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (280:9): [True: 1, False: 0]
  ------------------
  281|      1|				{
  282|      1|					return getAll();
  283|      1|				}
  284|      1|			}
  285|      1|		}
  286|      1|	}
  287|       |
  288|      0|	return defaultLevel;
  289|      1|}
_ZNK7log4cxx5Level16isGreaterOrEqualERKNSt3__110shared_ptrIS0_EE:
  298|   234k|{
  299|   234k|	return level1 && this->level >= level1->level;
  ------------------
  |  Branch (299:9): [True: 234k, False: 0]
  |  Branch (299:19): [True: 234k, False: 0]
  ------------------
  300|   234k|}

_ZN7log4cxx7pattern21LevelPatternConverterC1Ev:
   33|      1|	LoggingEventPatternConverter(LOG4CXX_STR("Level"),
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   34|      1|		LOG4CXX_STR("level"))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   35|      1|{
   36|      1|}
_ZN7log4cxx7pattern21LevelPatternConverter11newInstanceERKNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE:
   40|      1|{
   41|      1|	return std::make_shared<LevelPatternConverter>();
   42|      1|}
_ZNK7log4cxx7pattern21LevelPatternConverter6formatERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERNS_7helpers4PoolE:
   45|   234k|{
   46|   234k|	toAppendTo.append(event->getLevel()->toString());
   47|   234k|}

_ZN7log4cxx7pattern28LineLocationPatternConverterC1Ev:
   32|      1|	LoggingEventPatternConverter(LOG4CXX_STR("Line"),
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   33|      1|		LOG4CXX_STR("line"))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   34|      1|{
   35|      1|}
_ZN7log4cxx7pattern28LineLocationPatternConverter11newInstanceERKNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE:
   39|      1|{
   40|      1|	return std::make_shared<LineLocationPatternConverter>();
   41|      1|}
_ZNK7log4cxx7pattern28LineLocationPatternConverter6formatERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERNS_7helpers4PoolE:
   44|   234k|{
   45|   234k|	StringHelper::toString(
   46|   234k|		event->getLocationInformation().getLineNumber(),
   47|   234k|		toAppendTo);
   48|   234k|}

_ZN7log4cxx7pattern29LineSeparatorPatternConverterC1Ev:
   31|      1|	LoggingEventPatternConverter(LOG4CXX_STR("Line Sep"),
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   32|      1|		LOG4CXX_STR("lineSep"))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   33|      1|{
   34|      1|}
_ZN7log4cxx7pattern29LineSeparatorPatternConverter11newInstanceERKNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE:
   38|      1|{
   39|      1|	return std::make_shared<LineSeparatorPatternConverter>();
   40|      1|}
_ZNK7log4cxx7pattern29LineSeparatorPatternConverter6formatERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERNS_7helpers4PoolE:
   43|   234k|{
   44|   234k|	toAppendTo.append(LOG4CXX_EOL);
  ------------------
  |  |   68|   234k|		#define LOG4CXX_EOL LOG4CXX_STR("\x0A")
  |  |  ------------------
  |  |  |  |   51|   234k|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
   45|   234k|}

_ZN7log4cxx7pattern23LiteralPatternConverterC1ERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   46|      4|	LoggingEventPatternConverter(std::make_unique<LiteralPatternConverterPrivate>
   47|      4|		(LOG4CXX_STR("Literal"), LOG4CXX_STR("literal"), literal1))
  ------------------
  |  |   51|      4|		#define LOG4CXX_STR(str) str
  ------------------
              		(LOG4CXX_STR("Literal"), LOG4CXX_STR("literal"), literal1))
  ------------------
  |  |   51|      4|		#define LOG4CXX_STR(str) str
  ------------------
   48|      4|{
   49|      4|}
_ZN7log4cxx7pattern23LiteralPatternConverter11newInstanceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   53|      4|{
   54|      4|	if (literal.length() == 1 && literal[0] == 0x20 /* ' ' */)
  ------------------
  |  Branch (54:6): [True: 1, False: 3]
  |  Branch (54:31): [True: 0, False: 1]
  ------------------
   55|      0|	{
   56|      0|		static WideLife<PatternConverterPtr> blank = std::make_shared<LiteralPatternConverter>(literal);
   57|      0|		return blank;
   58|      0|	}
   59|       |
   60|      4|	return std::make_shared<LiteralPatternConverter>(literal);
   61|      4|}
_ZNK7log4cxx7pattern23LiteralPatternConverter6formatERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERNS_7helpers4PoolE:
   64|   938k|{
   65|   938k|	toAppendTo.append(priv->literal);
  ------------------
  |  |   29|   938k|#define priv static_cast<LiteralPatternConverterPrivate*>(m_priv.get())
  ------------------
   66|   938k|}
_ZN7log4cxx7pattern23LiteralPatternConverter30LiteralPatternConverterPrivateC2ERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEESB_SB_:
   34|      4|		PatternConverterPrivate( name, style ),
   35|      4|		literal(literal1) {}

_ZN7log4cxx7helpers6Loader9loadClassERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   57|      2|{
   58|      2|	return Class::forName(clazz);
   59|      2|}

_ZN7log4cxx3spi12LocationInfoC2EPKcS3_S3_i:
   47|   234k|	:  lineNumber( lineNumber1 ),
   48|   234k|	   fileName( fileName1 ? fileName1 : LocationInfo::NA ),
  ------------------
  |  Branch (48:15): [True: 234k, False: 0]
  ------------------
   49|   234k|	   shortFileName(shortFileName1 ? shortFileName1 : LocationInfo::NA ),
  ------------------
  |  Branch (49:19): [True: 234k, False: 0]
  ------------------
   50|   234k|	   methodName( methodName1 ? methodName1 : LocationInfo::NA_METHOD )
  ------------------
  |  Branch (50:17): [True: 234k, False: 0]
  ------------------
   51|   234k|{
   52|   234k|}
_ZN7log4cxx3spi12LocationInfoC2ERKS1_:
   70|   234k|	:  lineNumber( src.lineNumber ),
   71|   234k|	   fileName( src.fileName ),
   72|   234k|	   shortFileName( src.shortFileName ),
   73|   234k|	   methodName( src.methodName )
   74|   234k|{
   75|   234k|}
_ZNK7log4cxx3spi12LocationInfo16getShortFileNameEv:
  111|   234k|const char* LocationInfo::getShortFileName() const{
  112|   234k|	return shortFileName;
  113|   234k|}
_ZNK7log4cxx3spi12LocationInfo13getLineNumberEv:
  120|   234k|{
  121|   234k|	return lineNumber;
  122|   234k|}

_ZN7log4cxx6LoggerC2ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
   90|      1|	: m_priv(std::make_unique<LoggerPrivate>(name1))
   91|      1|	, m_threshold(0)
   92|      1|{
   93|      1|}
_ZN7log4cxx6LoggerD2Ev:
  103|      1|{
  104|      1|}
_ZN7log4cxx6Logger16replaceAppendersERKNSt3__16vectorINS1_10shared_ptrINS_8AppenderEEENS1_9allocatorIS5_EEEE:
  127|      1|{
  128|      1|	m_priv->aai.replaceAppenders(newList);
  129|       |
  130|      1|	if (auto rep = getHierarchy())
  ------------------
  |  Branch (130:11): [True: 1, False: 0]
  ------------------
  131|      1|	{
  132|      1|		for (auto const& item : newList)
  ------------------
  |  Branch (132:25): [True: 1, False: 1]
  ------------------
  133|      1|			rep->fireAddAppenderEvent(this, item.get());
  134|      1|	}
  135|      1|}
_ZN7log4cxx6Logger11reconfigureERKNSt3__16vectorINS1_10shared_ptrINS_8AppenderEEENS1_9allocatorIS5_EEEEb:
  138|      1|{
  139|      1|	m_priv->additive = newAdditivity;
  140|       |
  141|      1|	replaceAppenders(newList);
  142|      1|}
_ZNK7log4cxx6Logger13callAppendersERKNSt3__110shared_ptrINS_3spi12LoggingEventEEE:
  145|   234k|{
  146|   234k|	int writes = 0;
  147|       |
  148|   234k|	for (const Logger* logger = this;
  149|   469k|		logger != 0;
  ------------------
  |  Branch (149:3): [True: 234k, False: 234k]
  ------------------
  150|   234k|		logger = logger->m_priv->parent.get())
  151|   234k|	{
  152|   234k|		writes += logger->m_priv->aai.appendLoopOnAppenders(event);
  153|       |
  154|   234k|		if (!logger->m_priv->additive)
  ------------------
  |  Branch (154:7): [True: 0, False: 234k]
  ------------------
  155|      0|		{
  156|      0|			break;
  157|      0|		}
  158|   234k|	}
  159|       |
  160|   234k|	auto rep = getHierarchy();
  161|       |
  162|   234k|	if (writes == 0 && rep)
  ------------------
  |  Branch (162:6): [True: 0, False: 234k]
  |  Branch (162:21): [True: 0, False: 0]
  ------------------
  163|      0|	{
  164|      0|		rep->emitNoAppenderWarning(this);
  165|      0|	}
  166|   234k|}
_ZNK7log4cxx6Logger8addEventERKNSt3__110shared_ptrINS_5LevelEEEONS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKNS_3spi12LocationInfoE:
  191|   234k|{
  192|   234k|	if (!getHierarchy()) // Has removeHierarchy() been called?
  ------------------
  |  Branch (192:6): [True: 0, False: 234k]
  ------------------
  193|      0|		return;
  194|   234k|#if LOG4CXX_LOGCHAR_IS_UTF8
  195|   234k|	auto event = std::make_shared<LoggingEvent>(m_priv->name, level, location, std::move(message));
  196|       |#else
  197|       |	LOG4CXX_DECODE_CHAR(msg, message);
  198|       |	auto event = std::make_shared<LoggingEvent>(m_priv->name, level, location, std::move(msg));
  199|       |#endif
  200|   234k|	callAppenders(event);
  201|   234k|}
_ZNK7log4cxx6Logger12addInfoEventEONSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKNS_3spi12LocationInfoE:
  234|   234k|{
  235|   234k|	addEvent(m_priv->levelData->Info, std::move(message), location);
  236|   234k|}
_ZNK7log4cxx6Logger12getHierarchyEv:
  344|   703k|{
  345|   703k|	return m_priv->repositoryRaw;
  346|   703k|}
_ZNK7log4cxx6Logger8getLevelEv:
  396|      2|{
  397|      2|	return m_priv->level;
  398|      2|}
_ZNK7log4cxx6Logger13isInfoEnabledEv:
  458|   234k|{
  459|   234k|	auto rep = getHierarchy();
  460|       |
  461|   234k|	if (!rep || rep->isDisabled(Level::INFO_INT))
  ------------------
  |  Branch (461:6): [True: 0, False: 234k]
  |  Branch (461:14): [True: 0, False: 234k]
  ------------------
  462|      0|	{
  463|      0|		return false;
  464|      0|	}
  465|       |
  466|   234k|	return m_threshold <= Level::INFO_INT;
  467|   234k|}
_ZN7log4cxx6Logger18removeAllAppendersEv:
  611|      1|{
  612|      1|	AppenderList currentAppenders = m_priv->aai.getAllAppenders();
  613|      1|	m_priv->aai.removeAllAppenders();
  614|       |
  615|      1|	auto rep = getHierarchy();
  616|      1|	if(rep){
  ------------------
  |  Branch (616:5): [True: 0, False: 1]
  ------------------
  617|      0|		for(AppenderPtr appender : currentAppenders){
  ------------------
  |  Branch (617:28): [True: 0, False: 0]
  ------------------
  618|      0|			rep->fireRemoveAppenderEvent(this, appender.get());
  619|      0|		}
  620|      0|	}
  621|      1|}
_ZN7log4cxx6Logger15removeHierarchyEv:
  641|      1|{
  642|      1|	m_priv->repositoryRaw = 0;
  643|      1|}
_ZN7log4cxx6Logger12setHierarchyEPNS_3spi16LoggerRepositoryE:
  651|      1|{
  652|      1|	m_priv->repositoryRaw = repository1;
  653|      1|}
_ZN7log4cxx6Logger8setLevelENSt3__110shared_ptrINS_5LevelEEE:
  664|      2|{
  665|      2|	if (m_priv->level != level1)
  ------------------
  |  Branch (665:6): [True: 2, False: 0]
  ------------------
  666|      2|	{
  667|      2|		m_priv->level = level1;
  668|      2|		updateThreshold();
  669|      2|		if (auto rep = dynamic_cast<Hierarchy*>(getHierarchy()))
  ------------------
  |  Branch (669:12): [True: 1, False: 1]
  ------------------
  670|      1|			rep->updateChildren(this);
  671|      2|	}
  672|      2|}
_ZN7log4cxx6Logger15updateThresholdEv:
  675|      2|{
  676|      2|	m_threshold = getEffectiveLevel()->toInt();
  677|      2|}
_ZN7log4cxx6Logger13getRootLoggerEv:
  701|    288|{
  702|    288|	return LogManager::getRootLogger();
  703|    288|}
_ZN7log4cxx6Logger13LoggerPrivateC2ERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   41|      1|		: name(name1)
   42|      1|		, repositoryRaw(0)
   43|      1|		, additive(true)
   44|      1|		, levelData(Level::getData())
   45|      1|		{}

_ZN7log4cxx3spi12LoggingEventC1ERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS2_10shared_ptrINS_5LevelEEERKNS0_12LocationInfoEOS8_:
  184|   234k|	: m_priv(std::make_unique<LoggingEventPrivate>(logger, level, location, std::move(message)))
  185|   234k|{
  186|   234k|}
_ZN7log4cxx3spi12LoggingEventD2Ev:
  206|   234k|{
  207|   234k|}
_ZNK7log4cxx3spi12LoggingEvent8getLevelEv:
  335|   469k|{
  336|   469k|	return m_priv->level;
  337|   469k|}
_ZNK7log4cxx3spi12LoggingEvent18getRenderedMessageEv:
  350|   469k|{
  351|   469k|	m_priv->renderMessage();
  352|   469k|	return m_priv->message;
  353|   469k|}
_ZNK7log4cxx3spi12LoggingEvent13getThreadNameEv:
  356|   234k|{
  357|   234k|	return m_priv->pNames->idString;
  358|   234k|}
_ZNK7log4cxx3spi12LoggingEvent22getLocationInformationEv:
  366|   469k|{
  367|   469k|	return m_priv->locationInfo;
  368|   469k|}
_ZN7log4cxx3spi12LoggingEvent19LoggingEventPrivate13renderMessageEv:
  151|   469k|	{
  152|   469k|		if (!this->messageAppender.empty())
  ------------------
  |  Branch (152:7): [True: 0, False: 469k]
  ------------------
  153|      0|		{
  154|      0|			helpers::LogCharMessageBuffer buf;
  155|      0|			this->messageAppender.renderMessage(buf);
  156|      0|			this->message = buf.extract_str(buf);
  157|      0|			this->messageAppender.clear();
  158|      0|		}
  159|   469k|	}
_ZN7log4cxx3spi12LoggingEvent19LoggingEventPrivateD2Ev:
   98|   234k|	{
   99|   234k|		delete properties;
  100|   234k|	}
_ZN7log4cxx3spi12LoggingEvent19LoggingEventPrivateC2ERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERKNS3_10shared_ptrINS_5LevelEEERKNS0_12LocationInfoEOS9_NSC_INS_7helpers18ThreadSpecificData8NamePairEEE:
   55|   234k|		logger(logger1),
   56|   234k|		level(level1),
   57|   234k|		message(std::move(message1)),
   58|   234k|		timeStamp(Date::currentTime()),
   59|   234k|		locationInfo(locationInfo1),
   60|   234k|		chronoTimeStamp(std::chrono::microseconds(timeStamp)),
   61|   234k|		pNames(p)
   62|   234k|	{
   63|   234k|	}

_ZN7log4cxx7pattern28LoggingEventPatternConverterC2ERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_:
   33|      6|	const LogString& name1, const LogString& style1) : PatternConverter(name1, style1)
   34|      6|{
   35|      6|}
_ZN7log4cxx7pattern28LoggingEventPatternConverterC2ENSt3__110unique_ptrINS0_16PatternConverter23PatternConverterPrivateENS2_14default_deleteIS5_EEEE:
   38|      4|	PatternConverter (std::move(priv))
   39|      4|{
   40|       |
   41|      4|}
_ZNK7log4cxx7pattern28LoggingEventPatternConverter6formatERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   58|  2.34M|{
   59|  2.34M|	helpers::Pool p;
   60|  2.34M|	format(event, toAppendTo, p);
   61|  2.34M|}

_ZN7log4cxx7helpers6LogLogC2Ev:
   84|      1|	m_priv(std::make_unique<LogLogPrivate>())
   85|      1|{
   86|      1|	LogString log4cxxDebug = OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_DEBUG"), LOG4CXX_STR("false"));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
              	LogString log4cxxDebug = OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_DEBUG"), LOG4CXX_STR("false"));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   87|      1|	m_priv->debugEnabled = OptionConverter::toBoolean(log4cxxDebug, false);
   88|      1|	auto color = OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_COLOR"), LOG4CXX_STR("true"));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
              	auto color = OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_COLOR"), LOG4CXX_STR("true"));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   89|      1|	m_priv->setColorEnabled(OptionConverter::toBoolean(color, true));
   90|      1|}
_ZN7log4cxx7helpers6LogLogD2Ev:
   93|      1|{ m_priv.reset(); }
_ZN7log4cxx7helpers6LogLog11getInstanceEv:
   96|     12|{
   97|     12|	static WideLife<LogLog> internalLogger;
   98|       |
   99|     12|	return internalLogger;
  100|     12|}
_ZN7log4cxx7helpers6LogLog14isDebugEnabledEv:
  103|     10|{
  104|     10|	auto p = getInstance().m_priv.get();
  105|     10|	return p && !p->quietMode // Not deleted by onexit processing?
  ------------------
  |  Branch (105:9): [True: 10, False: 0]
  |  Branch (105:14): [True: 10, False: 0]
  ------------------
  106|     10|			 && p->debugEnabled;
  ------------------
  |  Branch (106:8): [True: 0, False: 10]
  ------------------
  107|     10|}
_ZN7log4cxx7helpers6LogLog5debugERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
  139|      2|{
  140|      2|	auto p = getInstance().m_priv.get();
  141|      2|	if (p && !p->quietMode) // Not deleted by onexit processing?
  ------------------
  |  Branch (141:6): [True: 2, False: 0]
  |  Branch (141:11): [True: 2, False: 0]
  ------------------
  142|      2|	{
  143|      2|		if (!p->debugEnabled)
  ------------------
  |  Branch (143:7): [True: 2, False: 0]
  ------------------
  144|      2|		{
  145|      2|			return;
  146|      2|		}
  147|       |
  148|      0|		std::lock_guard<std::mutex> lock(p->mutex);
  149|      0|		emit_log(p->debugPrefix, msg, p->suffix);
  150|      0|	}
  151|      2|}
_ZN7log4cxx7helpers6LogLog13LogLogPrivate15setColorEnabledEb:
   58|      1|	{
   59|      1|		if (newValue)
  ------------------
  |  Branch (59:7): [True: 1, False: 0]
  ------------------
   60|      1|		{
   61|      1|			this->errorPrefix = LOG4CXX_STR("\x1B[31m"); //red
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   62|      1|			this->warnPrefix = LOG4CXX_STR("\x1B[33m"); //yellow
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   63|      1|			this->debugPrefix = LOG4CXX_STR("\x1B[32m"); //green
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   64|      1|			this->suffix = LOG4CXX_STR("\x1B[0m"); // none
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   65|      1|		}
   66|      0|		else
   67|      0|		{
   68|      0|			this->errorPrefix.clear();
   69|      0|			this->warnPrefix.clear();
   70|      0|			this->debugPrefix.clear();
   71|      0|			this->suffix.clear();
   72|      0|		}
   73|      1|	}
_ZN7log4cxx7helpers6LogLog13LogLogPrivateC2Ev:
   38|      1|		debugEnabled(false),
   39|      1|		quietMode(false){}
_ZN7log4cxx7helpers6LogLog13LogLogPrivateD2Ev:
   42|      1|	{
   43|      1|		quietMode = true; // Prevent output after deletion by onexit processing chain.
   44|      1|	}

_ZN7log4cxx10LogManager21getRepositorySelectorEv:
   49|    289|{
   50|    289|	auto result = APRInitializer::getOrAddUnique<spi::RepositorySelector>( []() -> ObjectPtr
   51|    289|		{
   52|    289|			LoggerRepositoryPtr hierarchy = Hierarchy::create();
   53|    289|			return std::make_shared<DefaultRepositorySelector>(hierarchy);
   54|    289|		}
   55|    289|	);
   56|    289|	return result;
   57|    289|}
_ZN7log4cxx10LogManager19getLoggerRepositoryEv:
   78|    289|{
   79|    289|	return getRepositorySelector()->getLoggerRepository();
   80|    289|}
_ZN7log4cxx10LogManager13getRootLoggerEv:
   83|    288|{
   84|       |	// Delegate the actual manufacturing of the logger to the logger repository.
   85|    288|	auto r = getLoggerRepository();
   86|    288|	r->ensureIsConfigured(std::bind(DefaultConfigurator::configure, r));
   87|    288|	return r->getRootLogger();
   88|    288|}
logmanager.cpp:_ZZN7log4cxx10LogManager21getRepositorySelectorEvENK3$_0clEv:
   51|      1|		{
   52|      1|			LoggerRepositoryPtr hierarchy = Hierarchy::create();
   53|      1|			return std::make_shared<DefaultRepositorySelector>(hierarchy);
   54|      1|		}

_ZN7log4cxx7helpers17CharMessageBufferC2Ev:
   85|   234k|CharMessageBuffer::CharMessageBuffer() : m_priv(std::make_unique<CharMessageBufferPrivate>())
   86|   234k|{
   87|   234k|}
_ZN7log4cxx7helpers17CharMessageBufferD2Ev:
   90|   234k|{
   91|   234k|}
_ZN7log4cxx7helpers17CharMessageBufferlsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   94|   234k|{
   95|   234k|	if (m_priv->stream == 0)
  ------------------
  |  Branch (95:6): [True: 234k, False: 0]
  ------------------
   96|   234k|	{
   97|   234k|		m_priv->buf.append(msg);
   98|   234k|	}
   99|      0|	else
  100|      0|	{
  101|      0|		*m_priv->stream << msg;
  102|      0|	}
  103|       |
  104|   234k|	return *this;
  105|   234k|}
_ZN7log4cxx7helpers17CharMessageBuffer11extract_strERS1_:
  158|   234k|{
  159|   234k|	return std::move(m_priv->BufFromStream());
  160|   234k|}
_ZN7log4cxx7helpers13MessageBufferC2Ev:
  391|   234k|	m_priv(std::make_unique<MessageBufferPrivate>())
  392|   234k|{
  393|   234k|}
_ZN7log4cxx7helpers13MessageBufferD2Ev:
  396|   234k|{
  397|   234k|}
_ZN7log4cxx7helpers13MessageBufferlsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
  421|   234k|{
  422|   234k|	return m_priv->cbuf.operator << (msg);
  423|   234k|}
_ZN7log4cxx7helpers13MessageBuffer11extract_strERNS0_17CharMessageBufferE:
  440|   234k|{
  441|   234k|	return std::move(m_priv->cbuf.extract_str(buf));
  442|   234k|}
messagebuffer.cpp:_ZN12_GLOBAL__N_114StringOrStreamIcEC2Ev:
   38|   234k|		: stream(nullptr)
   39|   234k|		{}
messagebuffer.cpp:_ZN12_GLOBAL__N_114StringOrStreamIcED2Ev:
   41|   234k|	{
   42|   234k|		if (this->stream)
  ------------------
  |  Branch (42:7): [True: 0, False: 234k]
  ------------------
   43|      0|			ThreadSpecificData::releaseStringStream<T>(*this->stream);
   44|   234k|	}
messagebuffer.cpp:_ZN12_GLOBAL__N_114StringOrStreamIcE13BufFromStreamEv:
   70|   234k|	{
   71|   234k|		if (this->stream)
  ------------------
  |  Branch (71:7): [True: 0, False: 234k]
  ------------------
   72|      0|		{
   73|      0|			this->buf = std::move(*this->stream).str();
   74|      0|			this->stream->seekp(0);
   75|      0|			this->stream->str(std::basic_string<T>());
   76|      0|			this->stream->clear();
   77|      0|		}
   78|   234k|		return this->buf;
   79|   234k|	}
_ZN7log4cxx7helpers13MessageBuffer20MessageBufferPrivateC2Ev:
  371|   234k|	MessageBufferPrivate(){}

_ZN7log4cxx7pattern23MessagePatternConverterC1Ev:
   61|      1|	: LoggingEventPatternConverter(LOG4CXX_STR("Message")
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   62|      1|	, LOG4CXX_STR("message"))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   63|      1|{
   64|      1|}
_ZN7log4cxx7pattern23MessagePatternConverter11newInstanceERKNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE:
   68|      1|{
   69|      1|	if (options.empty() || options.front().empty())
  ------------------
  |  Branch (69:6): [True: 1, False: 0]
  |  Branch (69:25): [True: 0, False: 0]
  ------------------
   70|      1|	{
   71|      1|		return std::make_shared<MessagePatternConverter>();
   72|      1|	}
   73|      0|	return std::make_shared<QuotedMessagePatternConverter>(options.front().front());
   74|      1|}
_ZNK7log4cxx7pattern23MessagePatternConverter6formatERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERNS_7helpers4PoolE:
   77|   234k|{
   78|   234k|	auto& msg = event->getRenderedMessage();
   79|   234k|	auto& info = getFormattingInfo();
   80|   234k|	if (info.getMaxLength() < msg.length())
  ------------------
  |  Branch (80:6): [True: 0, False: 234k]
  ------------------
   81|      0|		toAppendTo.append(&msg[msg.length() - info.getMaxLength()], info.getMaxLength());
   82|   234k|	else
   83|   234k|		toAppendTo.append(msg);
   84|   234k|}

_ZN7log4cxx7helpers20OnlyOnceErrorHandlerC1Ev:
   34|      1|	m_priv(std::make_unique<OnlyOnceErrorHandlerPrivate>())
   35|      1|{
   36|      1|}
_ZN7log4cxx7helpers20OnlyOnceErrorHandlerD2Ev:
   38|      1|OnlyOnceErrorHandler::~OnlyOnceErrorHandler(){}

_ZN7log4cxx7helpers15OptionConverter19convertSpecialCharsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
  212|      1|{
  213|      1|	logchar c;
  214|      1|	LogString sbuf;
  215|       |
  216|      1|	LogString::const_iterator i = s.begin();
  217|       |
  218|     24|	while (i != s.end())
  ------------------
  |  Branch (218:9): [True: 23, False: 1]
  ------------------
  219|     23|	{
  220|     23|		c = *i++;
  221|       |
  222|     23|		if (i != s.end() && c == 0x5C /* '\\' */)
  ------------------
  |  Branch (222:7): [True: 22, False: 1]
  |  Branch (222:7): [True: 0, False: 23]
  |  Branch (222:23): [True: 0, False: 22]
  ------------------
  223|      0|		{
  224|      0|			c =  *i++;
  225|       |
  226|      0|			switch (c)
  227|      0|			{
  228|      0|				case 0x6E: //'n'
  ------------------
  |  Branch (228:5): [True: 0, False: 0]
  ------------------
  229|      0|					c = 0x0A;
  230|      0|					break;
  231|       |
  232|      0|				case 0x72: //'r'
  ------------------
  |  Branch (232:5): [True: 0, False: 0]
  ------------------
  233|      0|					c = 0x0D;
  234|      0|					break;
  235|       |
  236|      0|				case 0x74: //'t'
  ------------------
  |  Branch (236:5): [True: 0, False: 0]
  ------------------
  237|      0|					c = 0x09;
  238|      0|					break;
  239|       |
  240|      0|				case 0x66: //'f'
  ------------------
  |  Branch (240:5): [True: 0, False: 0]
  ------------------
  241|      0|					c = 0x0C;
  242|      0|					break;
  243|       |
  244|      0|				default:
  ------------------
  |  Branch (244:5): [True: 0, False: 0]
  ------------------
  245|      0|					break;
  246|      0|			}
  247|      0|		}
  248|       |
  249|     23|		sbuf.append(1, c);
  250|     23|	}
  251|       |
  252|      1|	return sbuf;
  253|      1|}
_ZN7log4cxx7helpers15OptionConverter9toBooleanERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEb:
  257|      2|{
  258|      2|	if (value.length() >= 4)
  ------------------
  |  Branch (258:6): [True: 2, False: 0]
  ------------------
  259|      2|	{
  260|      2|		if (StringHelper::equalsIgnoreCase(value.substr(0, 4),
  ------------------
  |  Branch (260:7): [True: 1, False: 1]
  ------------------
  261|      2|				LOG4CXX_STR("TRUE"), LOG4CXX_STR("true")))
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
              				LOG4CXX_STR("TRUE"), LOG4CXX_STR("true")))
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
  262|      1|		{
  263|      1|			return true;
  264|      1|		}
  265|      2|	}
  266|       |
  267|      1|	if (dEfault && value.length() >= 5)
  ------------------
  |  Branch (267:6): [True: 0, False: 1]
  |  Branch (267:17): [True: 0, False: 0]
  ------------------
  268|      0|	{
  269|      0|		if (StringHelper::equalsIgnoreCase(value.substr(0, 5),
  ------------------
  |  Branch (269:7): [True: 0, False: 0]
  ------------------
  270|      0|				LOG4CXX_STR("FALSE"), LOG4CXX_STR("false")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              				LOG4CXX_STR("FALSE"), LOG4CXX_STR("false")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  271|      0|		{
  272|      0|			return false;
  273|      0|		}
  274|      0|	}
  275|       |
  276|      1|	return dEfault;
  277|      1|}
_ZN7log4cxx7helpers15OptionConverter12findAndSubstERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERNS0_10PropertiesE:
  370|      8|{
  371|      8|	LogString value(props.getProperty(key));
  372|       |
  373|      8|	if (value.empty())
  ------------------
  |  Branch (373:6): [True: 3, False: 5]
  ------------------
  374|      3|	{
  375|      3|		return value;
  376|      3|	}
  377|       |
  378|      5|	try
  379|      5|	{
  380|      5|		return substVars(value, props);
  381|      5|	}
  382|      5|	catch (IllegalArgumentException& e)
  383|      5|	{
  384|      0|		LogLog::error(((LogString) LOG4CXX_STR("Bad option value ["))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  385|      0|			+ value + LOG4CXX_STR("]."), e);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  386|      0|		return value;
  387|      0|	}
  388|      5|}
_ZN7log4cxx7helpers15OptionConverter9substVarsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERNS0_10PropertiesE:
  391|      5|{
  392|      5|	return substVarsSafely(val, props);
  393|      5|}
_ZN7log4cxx7helpers15OptionConverter17getSystemPropertyERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_:
  396|      2|{
  397|      2|	if (!key.empty())
  ------------------
  |  Branch (397:6): [True: 2, False: 0]
  ------------------
  398|      2|	{
  399|      2|		LogString value(System::getProperty(key));
  400|       |
  401|      2|		if (!value.empty())
  ------------------
  |  Branch (401:7): [True: 0, False: 2]
  ------------------
  402|      0|		{
  403|      0|			return value;
  404|      0|		}
  405|      2|	}
  406|       |
  407|      2|	return def;
  408|      2|}
_ZN7log4cxx7helpers15OptionConverter7toLevelERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS2_10shared_ptrINS_5LevelEEE:
  412|      1|{
  413|      1|	size_t hashIndex = value.find(LOG4CXX_STR("#"));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  414|       |
  415|      1|	if (hashIndex == LogString::npos)
  ------------------
  |  Branch (415:6): [True: 1, False: 0]
  ------------------
  416|      1|	{
  417|       |		// no class name specified : use standard Level class
  418|      1|		if (value.empty())
  ------------------
  |  Branch (418:7): [True: 0, False: 1]
  ------------------
  419|      0|		{
  420|      0|			return defaultValue;
  421|      0|		}
  422|      1|		else
  423|      1|		{
  424|      1|			return Level::toLevelLS(value, defaultValue);
  425|      1|		}
  426|      1|	}
  427|       |
  428|      0|	LogString clazz = value.substr(hashIndex + 1);
  429|      0|	LogString levelName = value.substr(0, hashIndex);
  430|       |
  431|       |	// This is degenerate case but you never know.
  432|      0|	if (levelName.empty() || clazz.empty())
  ------------------
  |  Branch (432:6): [True: 0, False: 0]
  |  Branch (432:27): [True: 0, False: 0]
  ------------------
  433|      0|	{
  434|      0|		return Level::toLevelLS(value, defaultValue);
  435|      0|	}
  436|      0|	if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (436:6): [True: 0, False: 0]
  ------------------
  437|      0|	{
  438|      0|		LogLog::debug(LOG4CXX_STR("Desired ") + Level::getStaticClass().getName()
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  439|      0|				+ LOG4CXX_STR(" sub-class: [") + clazz + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              				+ LOG4CXX_STR(" sub-class: [") + clazz + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  440|      0|	}
  441|       |
  442|      0|	try
  443|      0|	{
  444|       |		// Note: the dynamic_cast could fail across DLL boundaries.
  445|       |		// However, without the dynamic_cast a poorly formed XML file
  446|       |		// could attempt to load an invalid class as a filter, causing
  447|       |		// a crash.  If it can't be converted, a std::bad_cast should be
  448|       |		// thrown(and caught by the exception handler below)
  449|      0|		const Level::LevelClass& levelClass =
  450|      0|			dynamic_cast<const Level::LevelClass&>(Loader::loadClass(clazz));
  451|      0|		return levelClass.toLevel(levelName);
  452|      0|	}
  453|      0|	catch (Exception& oops)
  454|      0|	{
  455|      0|		LogLog::error(LOG4CXX_STR("Could not create ") + Level::getStaticClass().getName() + LOG4CXX_STR(" sub-class"), oops);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              		LogLog::error(LOG4CXX_STR("Could not create ") + Level::getStaticClass().getName() + LOG4CXX_STR(" sub-class"), oops);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  456|      0|	}
  457|      0|	catch (const std::bad_cast&)
  458|      0|	{
  459|      0|		LogLog::warn(
  460|      0|			LOG4CXX_STR("class [") + clazz + LOG4CXX_STR("] unable to be converted to "
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              			LOG4CXX_STR("class [") + clazz + LOG4CXX_STR("] unable to be converted to "
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  461|      0|			"Level::LevelClass"));
  462|      0|	}
  463|      0|	catch (...)
  464|      0|	{
  465|      0|		LogLog::warn(
  466|      0|			LOG4CXX_STR("class [") + clazz + LOG4CXX_STR("], level [") + levelName +
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              			LOG4CXX_STR("class [") + clazz + LOG4CXX_STR("], level [") + levelName +
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  467|      0|			LOG4CXX_STR("] conversion) failed."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  468|      0|	}
  469|       |
  470|      0|	return defaultValue;
  471|      0|}
_ZN7log4cxx7helpers15OptionConverter16instantiateByKeyERNS0_10PropertiesERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEERKNS0_5ClassERKNS4_10shared_ptrINS0_6ObjectEEE:
  476|      2|{
  477|       |	// Get the value of the property in string form
  478|      2|	LogString className(findAndSubst(key, props));
  479|       |
  480|      2|	if (className.empty())
  ------------------
  |  Branch (480:6): [True: 0, False: 2]
  ------------------
  481|      0|	{
  482|      0|		LogLog::error(
  483|      0|			((LogString) LOG4CXX_STR("Could not find value for key ")) + key);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  484|      0|		return defaultValue;
  485|      0|	}
  486|       |
  487|       |	// Trim className to avoid trailing spaces that cause problems.
  488|      2|	return OptionConverter::instantiateByClassName(
  489|      2|			StringHelper::trim(className), superClass, defaultValue);
  490|      2|}
_ZN7log4cxx7helpers15OptionConverter22instantiateByClassNameERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS0_5ClassERKNS2_10shared_ptrINS0_6ObjectEEE:
  494|      2|{
  495|      2|	if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (495:6): [True: 0, False: 2]
  ------------------
  496|      0|	{
  497|      0|		LogLog::debug(LOG4CXX_STR("Desired ") + superClass.getName()
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  498|      0|			+ LOG4CXX_STR(" sub-class: [") + className + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              			+ LOG4CXX_STR(" sub-class: [") + className + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  499|      0|	}
  500|      2|	try
  501|      2|	{
  502|      2|		const Class& classObj = Loader::loadClass(className);
  503|      2|		ObjectPtr newObject =  ObjectPtr(classObj.newInstance());
  504|       |
  505|      2|		if (!newObject->instanceof(superClass))
  ------------------
  |  Branch (505:7): [True: 0, False: 2]
  ------------------
  506|      0|		{
  507|      0|			LogLog::error(LOG4CXX_STR("Not a ") + superClass.getName() + LOG4CXX_STR(" sub-class"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              			LogLog::error(LOG4CXX_STR("Not a ") + superClass.getName() + LOG4CXX_STR(" sub-class"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  508|      0|			return defaultValue;
  509|      0|		}
  510|       |
  511|      2|		return newObject;
  512|      2|	}
  513|      2|	catch (Exception& e)
  514|      2|	{
  515|      0|		LogLog::error(LOG4CXX_STR("Could not create ") + superClass.getName() + LOG4CXX_STR(" sub-class"), e);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              		LogLog::error(LOG4CXX_STR("Could not create ") + superClass.getName() + LOG4CXX_STR(" sub-class"), e);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  516|      0|	}
  517|       |
  518|      0|	return defaultValue;
  519|      2|}
optionconverter.cpp:_ZN12_GLOBAL__N_115substVarsSafelyERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERN7log4cxx7helpers10PropertiesEPKNS_14LogStringChainE:
   81|      5|{
   82|      5|	LogString sbuf;
   83|      5|	const logchar delimStartArray[] = { 0x24, 0x7B, 0 }; // '$', '{'
   84|      5|	const LogString delimStart(delimStartArray);
   85|      5|	const logchar delimStop = 0x7D; // '}';
   86|      5|	const size_t DELIM_START_LEN = 2;
   87|      5|	const size_t DELIM_STOP_LEN = 1;
   88|       |
   89|      5|	size_t i = 0;
   90|       |
   91|      5|	while (true)
  ------------------
  |  Branch (91:9): [True: 5, Folded]
  ------------------
   92|      5|	{
   93|      5|		size_t j = val.find(delimStart, i);
   94|       |
   95|      5|		if (j == val.npos)
  ------------------
  |  Branch (95:7): [True: 5, False: 0]
  ------------------
   96|      5|		{
   97|       |			// no more variables
   98|      5|			if (i == 0)
  ------------------
  |  Branch (98:8): [True: 5, False: 0]
  ------------------
   99|      5|			{
  100|       |				// this is a simple string
  101|      5|				return val;
  102|      5|			}
  103|      0|			else
  104|      0|			{
  105|       |				// add the tail string which contails no variables and return the result.
  106|      0|				sbuf.append(val.substr(i, val.length() - i));
  107|      0|				return sbuf;
  108|      0|			}
  109|      5|		}
  110|      0|		else
  111|      0|		{
  112|      0|			sbuf.append(val.substr(i, j - i));
  113|      0|			size_t k = val.find(delimStop, j);
  114|       |
  115|      0|			if (k == val.npos)
  ------------------
  |  Branch (115:8): [True: 0, False: 0]
  ------------------
  116|      0|			{
  117|      0|				LogString msg(1, (logchar) 0x22 /* '\"' */);
  118|      0|				msg.append(val);
  119|      0|				msg.append(LOG4CXX_STR("\" has no closing brace. Opening brace at position "));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  120|      0|				helpers::Pool p;
  121|      0|				helpers::StringHelper::toString(j, msg);
  122|      0|				msg.append(1, (logchar) 0x2E /* '.' */);
  123|      0|				throw helpers::IllegalArgumentException(msg);
  124|      0|			}
  125|      0|			else
  126|      0|			{
  127|      0|				j += DELIM_START_LEN;
  128|      0|				LogString key = val.substr(j, k - j);
  129|      0|				if (path && isRecursiveReference(key, path))
  ------------------
  |  Branch (129:9): [True: 0, False: 0]
  |  Branch (129:17): [True: 0, False: 0]
  ------------------
  130|      0|				{
  131|      0|					LogString msg(LOG4CXX_STR("The variable ${"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  132|      0|					msg.append(key);
  133|      0|					msg.append(LOG4CXX_STR("} is used recursively"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  134|      0|					throw helpers::IllegalArgumentException(msg);
  135|      0|				}
  136|       |
  137|       |				// first try in System properties
  138|      0|				LogString replacement(helpers::OptionConverter::getSystemProperty(key, LogString()));
  139|       |
  140|       |				// then try props parameter
  141|      0|				if (replacement.empty())
  ------------------
  |  Branch (141:9): [True: 0, False: 0]
  ------------------
  142|      0|				{
  143|      0|					replacement = props.getProperty(key);
  144|      0|				}
  145|       |
  146|      0|				if (!replacement.empty())
  ------------------
  |  Branch (146:9): [True: 0, False: 0]
  ------------------
  147|      0|				{
  148|       |					// Do variable substitution on the replacement string
  149|       |					// such that we can solve "Hello ${x2}" as "Hello p1"
  150|       |					// the where the properties are
  151|       |					// x1=p1
  152|       |					// x2=${x1}
  153|      0|					LogStringChain current{ key, path };
  154|      0|					LogString recursiveReplacement = substVarsSafely(replacement, props, &current);
  155|      0|					sbuf.append(recursiveReplacement);
  156|      0|				}
  157|       |
  158|      0|				i = k + DELIM_STOP_LEN;
  159|      0|			}
  160|      0|		}
  161|      5|	}
  162|      5|}

_ZN7log4cxx3spi13OptionHandler15activateOptionsEv:
   24|      2|{
   25|       |	// Ensure any ABI 15 overriden activateOptions is invoked
   26|      2|	helpers::Pool p;
   27|      2|	activateOptions(p);
   28|      2|}

_ZN7log4cxx7pattern16PatternConverterC2ENSt3__110unique_ptrINS1_23PatternConverterPrivateENS2_14default_deleteIS4_EEEE:
   31|      4|	m_priv(std::move(priv))
   32|      4|{
   33|      4|}
_ZN7log4cxx7pattern16PatternConverterC2ERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_:
   37|      6|	m_priv(std::make_unique<PatternConverterPrivate>(name, style))
   38|      6|{
   39|       |
   40|      6|}
_ZN7log4cxx7pattern16PatternConverterD2Ev:
   43|     10|{
   44|     10|}
_ZN7log4cxx7pattern16PatternConverter6appendERNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKS8_:
   57|   234k|{
   58|   234k|	LOG4CXX_DECODE_CHAR(decoded, src);
  ------------------
  |  |  251|   234k|	LOG4CXX_NS::LogString var;                      \
  |  |  252|   234k|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
   59|   234k|	toAppendTo.append(decoded);
   60|   234k|}
_ZNK7log4cxx7pattern16PatternConverter17getFormattingInfoEv:
   63|  2.57M|{
   64|  2.57M|	return *m_priv->info;
   65|  2.57M|}
_ZN7log4cxx7pattern16PatternConverter17setFormattingInfoERKNSt3__110shared_ptrINS0_14FormattingInfoEEE:
   68|      6|{
   69|      6|	m_priv->info = newValue;
   70|      6|}

_ZN7log4cxx13PatternLayoutC1Ev:
   94|      1|	m_priv(std::make_unique<PatternLayoutPrivate>())
   95|      1|{
   96|      1|}
_ZN7log4cxx13PatternLayoutD2Ev:
  107|      1|PatternLayout::~PatternLayout() {}
_ZNK7log4cxx13PatternLayout6formatERNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKNS1_10shared_ptrINS_3spi12LoggingEventEEERNS_7helpers4PoolE:
  116|   234k|{
  117|   234k|	auto& lsMsg = event->getRenderedMessage();
  118|   234k|	priv::reserveFormattedEvent(output, m_priv->expectedPatternLength, lsMsg.size());
  119|       |
  120|   234k|	for (auto item : m_priv->patternConverters)
  ------------------
  |  Branch (120:17): [True: 2.34M, False: 234k]
  ------------------
  121|  2.34M|	{
  122|  2.34M|		auto startField = output.length();
  123|  2.34M|		item->format(event, output);
  124|  2.34M|		item->getFormattingInfo().adjustField(startField, output);
  125|  2.34M|	}
  126|       |
  127|   234k|}
_ZN7log4cxx13PatternLayout9setOptionERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES9_:
  130|      1|{
  131|      1|	if (StringHelper::equalsIgnoreCase(option,
  ------------------
  |  Branch (131:6): [True: 1, False: 0]
  ------------------
  132|      1|			LOG4CXX_STR("CONVERSIONPATTERN"),
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  133|      1|			LOG4CXX_STR("conversionpattern")))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  134|      1|	{
  135|      1|		m_priv->conversionPattern = OptionConverter::convertSpecialChars(value);
  136|      1|	}else if(StringHelper::equalsIgnoreCase(option,
  ------------------
  |  Branch (136:11): [True: 0, False: 0]
  ------------------
  137|      0|											LOG4CXX_STR("ERRORCOLOR"),
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  138|      0|											LOG4CXX_STR("errorcolor"))){
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  139|      0|		m_priv->m_errorColor = value;
  140|      0|		if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (140:7): [True: 0, False: 0]
  ------------------
  141|      0|		{
  142|      0|			LogString msg(LOG4CXX_STR("Setting error color to "));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  143|      0|			msg += value;
  144|      0|			LogLog::debug(msg);
  145|      0|		}
  146|      0|	}else if(StringHelper::equalsIgnoreCase(option,
  ------------------
  |  Branch (146:11): [True: 0, False: 0]
  ------------------
  147|      0|											LOG4CXX_STR("FATALCOLOR"),
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  148|      0|											LOG4CXX_STR("fatalcolor"))){
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  149|      0|		m_priv->m_fatalColor = value;
  150|      0|	}else if(StringHelper::equalsIgnoreCase(option,
  ------------------
  |  Branch (150:11): [True: 0, False: 0]
  ------------------
  151|      0|											LOG4CXX_STR("WARNCOLOR"),
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  152|      0|											LOG4CXX_STR("warncolor"))){
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  153|      0|		m_priv->m_warnColor = value;
  154|      0|	}else if(StringHelper::equalsIgnoreCase(option,
  ------------------
  |  Branch (154:11): [True: 0, False: 0]
  ------------------
  155|      0|											LOG4CXX_STR("INFOCOLOR"),
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  156|      0|											LOG4CXX_STR("infocolor"))){
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  157|      0|		m_priv->m_infoColor = value;
  158|      0|	}else if(StringHelper::equalsIgnoreCase(option,
  ------------------
  |  Branch (158:11): [True: 0, False: 0]
  ------------------
  159|      0|											LOG4CXX_STR("DEBUGCOLOR"),
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  160|      0|											LOG4CXX_STR("debugcolor"))){
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  161|      0|		m_priv->m_debugColor = value;
  162|      0|	}else if(StringHelper::equalsIgnoreCase(option,
  ------------------
  |  Branch (162:11): [True: 0, False: 0]
  ------------------
  163|      0|											LOG4CXX_STR("TRACECOLOR"),
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  164|      0|											LOG4CXX_STR("tracecolor"))){
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  165|      0|		m_priv->m_traceColor = value;
  166|      0|	}
  167|      1|}
_ZN7log4cxx13PatternLayout15activateOptionsERNS_7helpers4PoolE:
  170|      1|{
  171|      1|	LogString pat(m_priv->conversionPattern);
  172|       |
  173|      1|	if (pat.empty())
  ------------------
  |  Branch (173:6): [True: 0, False: 1]
  ------------------
  174|      0|	{
  175|      0|		pat = LOG4CXX_STR("%m%n");
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  176|      0|	}
  177|       |
  178|      1|	m_priv->patternConverters.erase(m_priv->patternConverters.begin(), m_priv->patternConverters.end());
  179|      1|	auto converters = PatternParser::parse(pat, getFormatSpecifiers());
  180|       |
  181|       |	//
  182|       |	//   strip out any pattern converters that don't handle LoggingEvents
  183|       |	//
  184|       |	//
  185|      1|	for (auto const& converterItem : converters)
  ------------------
  |  Branch (185:33): [True: 10, False: 1]
  ------------------
  186|     10|	{
  187|     10|		if (auto eventConverter = LOG4CXX_NS::cast<LoggingEventPatternConverter>(converterItem))
  ------------------
  |  Branch (187:12): [True: 10, False: 0]
  ------------------
  188|     10|		{
  189|     10|			m_priv->patternConverters.push_back(eventConverter);
  190|     10|		}
  191|     10|	}
  192|      1|	m_priv->expectedPatternLength = priv::doubledLayoutSize(getFormattedEventCharacterCount());
  193|      1|}
_ZN7log4cxx13PatternLayout19getFormatSpecifiersEv:
  200|      1|{
  201|      1|	PatternMap specs;
  202|      1|	RULES_PUT("c", LoggerPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  203|      1|	RULES_PUT("logger", LoggerPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  204|       |
  205|      1|	RULES_PUT("C", ClassNamePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  206|      1|	RULES_PUT("class", ClassNamePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  207|       |
  208|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR("Y")), std::bind(&PatternLayout::createColorStartPatternConverter, this, std::placeholders::_1)));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  209|      1|	RULES_PUT("y", ColorEndPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  210|       |
  211|      1|	RULES_PUT("d", DatePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  212|      1|	RULES_PUT("date", DatePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  213|       |
  214|      1|	RULES_PUT("f", ShortFileLocationPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  215|       |
  216|      1|	RULES_PUT("F", FileLocationPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  217|      1|	RULES_PUT("file", FileLocationPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  218|       |
  219|      1|	RULES_PUT("l", FullLocationPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  220|       |
  221|      1|	RULES_PUT("L", LineLocationPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  222|      1|	RULES_PUT("line", LineLocationPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  223|       |
  224|      1|	RULES_PUT("m", MessagePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  225|      1|	RULES_PUT("message", MessagePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  226|       |
  227|      1|	RULES_PUT("n", LineSeparatorPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  228|       |
  229|      1|	RULES_PUT("M", MethodLocationPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  230|      1|	RULES_PUT("method", MethodLocationPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  231|       |
  232|      1|	RULES_PUT("p", LevelPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  233|      1|	RULES_PUT("level", LevelPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  234|       |
  235|      1|	RULES_PUT("r", RelativeTimePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  236|      1|	RULES_PUT("relative", RelativeTimePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  237|       |
  238|      1|	RULES_PUT("t", ThreadPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  239|      1|	RULES_PUT("thread", ThreadPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  240|       |
  241|      1|	RULES_PUT("T", ThreadUsernamePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  242|      1|	RULES_PUT("threadname", ThreadUsernamePatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  243|       |
  244|      1|	RULES_PUT("x", NDCPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  245|      1|	RULES_PUT("ndc", NDCPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  246|       |
  247|      1|	RULES_PUT("X", PropertiesPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  248|      1|	RULES_PUT("J", MDCPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  249|      1|	RULES_PUT("properties", PropertiesPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  250|       |
  251|      1|	RULES_PUT("throwable", ThrowableInformationPatternConverter);
  ------------------
  |  |  196|      1|	specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), cls ::newInstance))
  |  |  ------------------
  |  |  |  |   51|      1|		#define LOG4CXX_STR(str) str
  |  |  ------------------
  ------------------
  252|      1|	return specs;
  253|      1|}
_ZN7log4cxx13PatternLayout20PatternLayoutPrivateC2Ev:
   62|      1|		: expectedPatternLength(100)
   63|      1|		{}

_ZN7log4cxx7pattern13PatternParser24isUnicodeIdentifierStartEc:
   38|     11|{
   39|       |	//
   40|       |	//   greatly simplified version checks if
   41|       |	//     character is USACII alpha or number
   42|       |	//
   43|     11|	return (ch >= 0x41 /* 'A' */ && ch <= 0x5A /* 'Z' */) ||
  ------------------
  |  Branch (43:10): [True: 7, False: 4]
  |  Branch (43:34): [True: 1, False: 6]
  ------------------
   44|     10|		(ch >= 0x61 /* 'a' */ && ch <= 0x7A /* 'z' */) ||
  ------------------
  |  Branch (44:4): [True: 5, False: 5]
  |  Branch (44:28): [True: 5, False: 0]
  ------------------
   45|      5|		(ch >= 0x30 /* '0' */ && ch <= 0x39 /* '9' */);
  ------------------
  |  Branch (45:4): [True: 2, False: 3]
  |  Branch (45:28): [True: 0, False: 2]
  ------------------
   46|     11|}
_ZN7log4cxx7pattern13PatternParser23isUnicodeIdentifierPartEc:
   49|      5|{
   50|       |	//
   51|       |	//   greatly simplified version checks if
   52|       |	//     character is USACII alpha or number
   53|       |	//
   54|      5|	return isUnicodeIdentifierStart(ch)
  ------------------
  |  Branch (54:9): [True: 0, False: 5]
  ------------------
   55|      5|		|| (ch == 0x5F /* '_' */);
  ------------------
  |  Branch (55:6): [True: 0, False: 5]
  ------------------
   56|      5|}
_ZN7log4cxx7pattern13PatternParser16extractConverterEcRKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEmRS8_SB_:
   62|      6|{
   63|      6|	if (!convBuf.empty())
  ------------------
  |  Branch (63:6): [True: 0, False: 6]
  ------------------
   64|      0|	{
   65|      0|		convBuf.erase(convBuf.begin(), convBuf.end());
   66|      0|	}
   67|       |
   68|       |	// When this method is called, lastChar points to the first character of the
   69|       |	// conversion word. For example:
   70|       |	// For "%hello"     lastChar = 'h'
   71|       |	// For "%-5hello"   lastChar = 'h'
   72|       |	//System.out.println("lastchar is "+lastChar);
   73|      6|	if (!isUnicodeIdentifierStart(lastChar))
  ------------------
  |  Branch (73:6): [True: 0, False: 6]
  ------------------
   74|      0|	{
   75|      0|		return i;
   76|      0|	}
   77|       |
   78|      6|	convBuf.append(1, lastChar);
   79|       |
   80|      6|	while (
   81|      6|		(i < pattern.length())
  ------------------
  |  Branch (81:3): [True: 5, False: 1]
  ------------------
   82|      5|		&& isUnicodeIdentifierPart(pattern[i]))
  ------------------
  |  Branch (82:6): [True: 0, False: 5]
  ------------------
   83|      0|	{
   84|      0|		convBuf.append(1, pattern[i]);
   85|      0|		currentLiteral.append(1, pattern[i]);
   86|       |
   87|       |		//System.out.println("conv buffer is now ["+convBuf+"].");
   88|      0|		i++;
   89|      0|	}
   90|       |
   91|      6|	return i;
   92|      6|}
_ZN7log4cxx7pattern13PatternParser14extractOptionsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEmRNS2_6vectorIS8_NS6_IS8_EEEE:
   97|      6|{
   98|      6|	while ((i < pattern.length()) && (pattern[i] == 0x7B /* '{' */))
  ------------------
  |  Branch (98:9): [True: 5, False: 1]
  |  Branch (98:35): [True: 0, False: 5]
  ------------------
   99|      0|	{
  100|      0|		size_t end = pattern.find(0x7D /* '}' */, i);
  101|       |
  102|      0|		if (end == pattern.npos)
  ------------------
  |  Branch (102:7): [True: 0, False: 0]
  ------------------
  103|      0|		{
  104|      0|			break;
  105|      0|		}
  106|       |
  107|      0|		LogString r(pattern.substr(i + 1, end - i - 1));
  108|      0|		options.push_back(r);
  109|      0|		i = end + 1;
  110|      0|	}
  111|       |
  112|      6|	return i;
  113|      6|}
_ZN7log4cxx7pattern13PatternParser5parseERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS2_3mapIS8_NS2_8functionIFNS2_10shared_ptrINS0_16PatternConverterEEERKNS2_6vectorIS8_NS6_IS8_EEEEEEENS2_4lessIS8_EENS6_INS2_4pairIS9_SM_EEEEEE:
  130|      1|{
  131|      1|	PatternConverterList patternConverters;
  132|      1|	LogString currentLiteral;
  133|       |
  134|      1|	size_t patternLength = pattern.length();
  135|      1|	int state = LITERAL_STATE;
  136|      1|	logchar c;
  137|      1|	size_t i = 0;
  138|      1|	int minDigitCount{ 0 }, maxDigitCount{ 0 };
  139|      1|	auto formattingInfo = FormattingInfo::getDefault();
  140|       |
  141|     24|	while (i < patternLength)
  ------------------
  |  Branch (141:9): [True: 23, False: 1]
  ------------------
  142|     23|	{
  143|     23|		c = pattern[i++];
  144|       |
  145|     23|		switch (state)
  ------------------
  |  Branch (145:11): [True: 23, False: 0]
  ------------------
  146|     23|		{
  147|     16|			case LITERAL_STATE:
  ------------------
  |  Branch (147:4): [True: 16, False: 7]
  ------------------
  148|       |
  149|       |				// In literal state, the last char is always a literal.
  150|     16|				if (i == patternLength)
  ------------------
  |  Branch (150:9): [True: 0, False: 16]
  ------------------
  151|      0|				{
  152|      0|					currentLiteral.append(1, c);
  153|       |
  154|      0|					continue;
  155|      0|				}
  156|       |
  157|     16|				if (c == ESCAPE_CHAR)
  ------------------
  |  Branch (157:9): [True: 6, False: 10]
  ------------------
  158|      6|				{
  159|       |					// peek at the next char.
  160|      6|					if (pattern[i] == ESCAPE_CHAR)
  ------------------
  |  Branch (160:10): [True: 0, False: 6]
  ------------------
  161|      0|					{
  162|      0|						currentLiteral.append(1, c);
  163|      0|						i++; // move pointer
  164|      0|					}
  165|      6|					else
  166|      6|					{
  167|      6|						if (!currentLiteral.empty())
  ------------------
  |  Branch (167:11): [True: 4, False: 2]
  ------------------
  168|      4|						{
  169|      4|							patternConverters.push_back(
  170|      4|								LiteralPatternConverter::newInstance(currentLiteral));
  171|      4|							currentLiteral.erase(currentLiteral.begin(), currentLiteral.end());
  172|      4|						}
  173|       |
  174|      6|						currentLiteral.append(1, c); // append %
  175|      6|						state = CONVERTER_STATE;
  176|      6|						formattingInfo = FormattingInfo::getDefault();
  177|      6|					}
  178|      6|				}
  179|     10|				else
  180|     10|				{
  181|     10|					currentLiteral.append(1, c);
  182|     10|				}
  183|       |
  184|     16|				break;
  185|       |
  186|      6|			case CONVERTER_STATE:
  ------------------
  |  Branch (186:4): [True: 6, False: 17]
  ------------------
  187|      6|				currentLiteral.append(1, c);
  188|       |
  189|      6|				switch (c)
  190|      6|				{
  191|      0|					case 0x2D: // '-'
  ------------------
  |  Branch (191:6): [True: 0, False: 6]
  ------------------
  192|      0|						formattingInfo = std::make_shared<FormattingInfo>(
  193|      0|									true, formattingInfo->getMinLength(),
  194|      0|									formattingInfo->getMaxLength());
  195|       |
  196|      0|						break;
  197|       |
  198|      0|					case 0x2E: // '.'
  ------------------
  |  Branch (198:6): [True: 0, False: 6]
  ------------------
  199|      0|						state = DOT_STATE;
  200|       |
  201|      0|						break;
  202|       |
  203|      6|					default:
  ------------------
  |  Branch (203:6): [True: 6, False: 0]
  ------------------
  204|       |
  205|      6|						if ((c >= 0x30 /* '0' */) && (c <= 0x39 /* '9' */))
  ------------------
  |  Branch (205:11): [True: 6, False: 0]
  |  Branch (205:36): [True: 1, False: 5]
  ------------------
  206|      1|						{
  207|      1|							formattingInfo = std::make_shared<FormattingInfo>(
  208|      1|										formattingInfo->isLeftAligned(), c - 0x30 /* '0' */,
  209|      1|										formattingInfo->getMaxLength());
  210|      1|							state = MIN_STATE;
  211|      1|							minDigitCount = 1;
  212|      1|						}
  213|      5|						else
  214|      5|						{
  215|      5|							i = finalizeConverter(
  216|      5|									c, pattern, i, currentLiteral, formattingInfo,
  217|      5|									rules, patternConverters);
  218|       |
  219|       |							// Next pattern is assumed to be a literal.
  220|      5|							state = LITERAL_STATE;
  221|      5|							formattingInfo = FormattingInfo::getDefault();
  222|       |
  223|      5|							if (!currentLiteral.empty())
  ------------------
  |  Branch (223:12): [True: 0, False: 5]
  ------------------
  224|      0|							{
  225|      0|								currentLiteral.erase(currentLiteral.begin(), currentLiteral.end());
  226|      0|							}
  227|      5|						}
  228|      6|				} // switch
  229|       |
  230|      6|				break;
  231|       |
  232|      6|			case MIN_STATE:
  ------------------
  |  Branch (232:4): [True: 1, False: 22]
  ------------------
  233|      1|				currentLiteral.append(1, c);
  234|       |
  235|      1|				if ((c >= 0x30 /* '0' */) && (c <= 0x39 /* '9' */) && minDigitCount < 3)
  ------------------
  |  Branch (235:9): [True: 1, False: 0]
  |  Branch (235:34): [True: 0, False: 1]
  |  Branch (235:59): [True: 0, False: 0]
  ------------------
  236|      0|				{
  237|      0|					formattingInfo = std::make_shared<FormattingInfo>(
  238|      0|								formattingInfo->isLeftAligned(),
  239|      0|								(formattingInfo->getMinLength() * 10) + (c - 0x30 /* '0' */),
  240|      0|								formattingInfo->getMaxLength());
  241|      0|					++minDigitCount;
  242|      0|				}
  243|      1|				else if (c == 0x2E /* '.' */)
  ------------------
  |  Branch (243:14): [True: 0, False: 1]
  ------------------
  244|      0|				{
  245|      0|					state = DOT_STATE;
  246|      0|				}
  247|      1|				else
  248|      1|				{
  249|      1|					i = finalizeConverter(
  250|      1|							c, pattern, i, currentLiteral, formattingInfo,
  251|      1|							rules, patternConverters);
  252|      1|					state = LITERAL_STATE;
  253|      1|					formattingInfo = FormattingInfo::getDefault();
  254|       |
  255|      1|					if (!currentLiteral.empty())
  ------------------
  |  Branch (255:10): [True: 0, False: 1]
  ------------------
  256|      0|					{
  257|      0|						currentLiteral.erase(currentLiteral.begin(), currentLiteral.end());
  258|      0|					}
  259|      1|				}
  260|       |
  261|      1|				break;
  262|       |
  263|      0|			case DOT_STATE:
  ------------------
  |  Branch (263:4): [True: 0, False: 23]
  ------------------
  264|      0|				currentLiteral.append(1, c);
  265|       |
  266|      0|				if ((c >= 0x30 /* '0' */) && (c <= 0x39 /* '9' */))
  ------------------
  |  Branch (266:9): [True: 0, False: 0]
  |  Branch (266:34): [True: 0, False: 0]
  ------------------
  267|      0|				{
  268|      0|					formattingInfo = std::make_shared<FormattingInfo>(
  269|      0|								formattingInfo->isLeftAligned(), formattingInfo->getMinLength(),
  270|      0|								c - 0x30 /* '0' */);
  271|      0|					state = MAX_STATE;
  272|      0|					maxDigitCount = 1;
  273|      0|				}
  274|      0|				else
  275|      0|				{
  276|      0|					LogLog::error(LOG4CXX_STR("Error in pattern, was expecting digit."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  277|       |
  278|      0|					state = LITERAL_STATE;
  279|      0|				}
  280|       |
  281|      0|				break;
  282|       |
  283|      0|			case MAX_STATE:
  ------------------
  |  Branch (283:4): [True: 0, False: 23]
  ------------------
  284|      0|				currentLiteral.append(1, c);
  285|       |
  286|      0|				if ((c >= 0x30 /* '0' */) && (c <= 0x39 /* '9' */) && maxDigitCount < 3)
  ------------------
  |  Branch (286:9): [True: 0, False: 0]
  |  Branch (286:34): [True: 0, False: 0]
  |  Branch (286:59): [True: 0, False: 0]
  ------------------
  287|      0|				{
  288|      0|					formattingInfo = std::make_shared<FormattingInfo>(
  289|      0|								formattingInfo->isLeftAligned(), formattingInfo->getMinLength(),
  290|      0|								(formattingInfo->getMaxLength() * 10) + (c - 0x30 /* '0' */));
  291|      0|					++maxDigitCount;
  292|      0|				}
  293|      0|				else
  294|      0|				{
  295|      0|					i = finalizeConverter(
  296|      0|							c, pattern, i, currentLiteral, formattingInfo,
  297|      0|							rules, patternConverters);
  298|      0|					state = LITERAL_STATE;
  299|      0|					formattingInfo = FormattingInfo::getDefault();
  300|       |
  301|      0|					if (!currentLiteral.empty())
  ------------------
  |  Branch (301:10): [True: 0, False: 0]
  ------------------
  302|      0|					{
  303|      0|						currentLiteral.erase(currentLiteral.begin(), currentLiteral.end());
  304|      0|					}
  305|      0|				}
  306|       |
  307|      0|				break;
  308|     23|		} // switch
  309|     23|	}
  310|       |
  311|       |	// while
  312|      1|	if (currentLiteral.length() != 0)
  ------------------
  |  Branch (312:6): [True: 0, False: 1]
  ------------------
  313|      0|	{
  314|      0|		patternConverters.push_back(
  315|      0|			LiteralPatternConverter::newInstance(currentLiteral));
  316|      0|	}
  317|      1|	return patternConverters;
  318|      1|}
_ZN7log4cxx7pattern13PatternParser15createConverterERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERS8_RKNS2_3mapIS8_NS2_8functionIFNS2_10shared_ptrINS0_16PatternConverterEEERKNS2_6vectorIS8_NS6_IS8_EEEEEEENS2_4lessIS8_EENS6_INS2_4pairIS9_SN_EEEEEERSJ_:
  326|      6|{
  327|       |
  328|      6|	LogString converterName(converterId);
  329|       |
  330|      6|	for (size_t i = converterId.length(); i > 0; i--)
  ------------------
  |  Branch (330:40): [True: 6, False: 0]
  ------------------
  331|      6|	{
  332|      6|		converterName = converterName.substr(0, i);
  333|      6|		PatternMap::const_iterator iter = rules.find(converterName);
  334|       |
  335|      6|		if (iter != rules.end())
  ------------------
  |  Branch (335:7): [True: 6, False: 0]
  ------------------
  336|      6|		{
  337|      6|			currentLiteral.erase(currentLiteral.begin(),
  338|      6|				currentLiteral.end() - (converterId.length() - i));
  339|      6|			return (iter->second)(options);
  340|      6|		}
  341|      6|	}
  342|       |
  343|      0|	LogLog::error(LogString(LOG4CXX_STR("Unrecognized format specifier ")) + converterId);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  344|       |
  345|      0|	return PatternConverterPtr();
  346|      6|}
_ZN7log4cxx7pattern13PatternParser17finalizeConverterEcRKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEmRS8_RKNS2_10shared_ptrINS0_14FormattingInfoEEERKNS2_3mapIS8_NS2_8functionIFNSC_INS0_16PatternConverterEEERKNS2_6vectorIS8_NS6_IS8_EEEEEEENS2_4lessIS8_EENS6_INS2_4pairIS9_SR_EEEEEERNSL_ISK_NS6_ISK_EEEE:
  353|      6|{
  354|      6|	LogString convBuf;
  355|      6|	i = extractConverter(c, pattern, i, convBuf, currentLiteral);
  356|       |
  357|      6|	if (convBuf.empty())
  ------------------
  |  Branch (357:6): [True: 0, False: 6]
  ------------------
  358|      0|	{
  359|      0|		LogLog::error(LOG4CXX_STR("Empty conversion specifier"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  360|      0|		patternConverters.push_back(
  361|      0|			LiteralPatternConverter::newInstance(currentLiteral));
  362|      0|	}
  363|      6|	else
  364|      6|	{
  365|      6|		LogString converterId(convBuf);
  366|       |
  367|      6|		std::vector<LogString> options;
  368|      6|		i = extractOptions(pattern, i, options);
  369|       |
  370|      6|		PatternConverterPtr pc(
  371|      6|			createConverter(
  372|      6|				converterId, currentLiteral, rules, options));
  373|       |
  374|      6|		if (pc == NULL)
  ------------------
  |  Branch (374:7): [True: 0, False: 6]
  ------------------
  375|      0|		{
  376|      0|			LogString msg(LOG4CXX_STR("Unrecognized conversion specifier ["));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  377|      0|			msg.append(converterId);
  378|      0|			msg.append(LOG4CXX_STR("] in conversion pattern."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  379|      0|			LogLog::error(msg);
  380|      0|			patternConverters.push_back(
  381|      0|				LiteralPatternConverter::newInstance(currentLiteral));
  382|      0|		}
  383|      6|		else
  384|      6|		{
  385|      6|			patternConverters.push_back(pc);
  386|      6|			pc->setFormattingInfo(formattingInfo);
  387|       |
  388|      6|			if (currentLiteral.length() > 0)
  ------------------
  |  Branch (388:8): [True: 0, False: 6]
  ------------------
  389|      0|			{
  390|      0|				patternConverters.push_back(
  391|      0|					LiteralPatternConverter::newInstance(currentLiteral));
  392|      0|			}
  393|      6|		}
  394|      6|	}
  395|       |
  396|      6|	if (!currentLiteral.empty())
  ------------------
  |  Branch (396:6): [True: 0, False: 6]
  ------------------
  397|      0|	{
  398|      0|		currentLiteral.erase(currentLiteral.begin(), currentLiteral.end());
  399|      0|	}
  400|       |
  401|      6|	return i;
  402|      6|}

_ZN7log4cxx7helpers4PoolC2Ev:
   33|  2.57M|Pool::Pool() : pool(0), release(true)
   34|  2.57M|{
   35|  2.57M|}
_ZN7log4cxx7helpers4PoolD2Ev:
   43|  2.57M|{
   44|  2.57M|	if (pool && release)
  ------------------
  |  Branch (44:6): [True: 5, False: 2.57M]
  |  Branch (44:14): [True: 5, False: 0]
  ------------------
   45|      5|	{
   46|      5|		apr_pool_destroy(pool);
   47|      5|	}
   48|  2.57M|}
_ZN7log4cxx7helpers4Pool7setPoolEv:
   51|      5|{
   52|      5|	apr_status_t stat = apr_pool_create(&pool, APRInitializer::getRootPool());
  ------------------
  |  |  323|      5|    apr_pool_create_ex(newpool, parent, NULL, NULL)
  ------------------
   53|       |
   54|      5|	if (stat != APR_SUCCESS)
  ------------------
  |  |  225|      5|#define APR_SUCCESS 0
  ------------------
  |  Branch (54:6): [True: 0, False: 5]
  ------------------
   55|      0|	{
   56|      0|		throw PoolException(stat);
   57|      0|	}
   58|      5|}
_ZN7log4cxx7helpers4Pool10getAPRPoolEv:
   61|      5|{
   62|      5|	if (!pool)
  ------------------
  |  Branch (62:6): [True: 5, False: 0]
  ------------------
   63|      5|		setPool();
   64|      5|	return pool;
   65|      5|}

_ZN7log4cxx7helpers10PropertiesC2Ev:
  398|      1|Properties::Properties() : properties(new PropertyMap())
  399|      1|{
  400|      1|}
_ZN7log4cxx7helpers10PropertiesC2ERKS1_:
  403|      1|	: properties(new PropertyMap(*other.properties))
  404|      1|{
  405|      1|}
_ZN7log4cxx7helpers10PropertiesD2Ev:
  415|      2|{
  416|      2|	delete properties;
  417|      2|}
_ZN7log4cxx7helpers10Properties11setPropertyERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_:
  420|     11|{
  421|     11|	return put(key, value);
  422|     11|}
_ZN7log4cxx7helpers10Properties3putERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_:
  425|     11|{
  426|     11|	LogString oldValue((*properties)[key]);
  427|     11|	(*properties)[key] = value;
  428|     11|	return oldValue;
  429|     11|}
_ZNK7log4cxx7helpers10Properties11getPropertyERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
  432|     11|{
  433|     11|	return get(key);
  434|     11|}
_ZNK7log4cxx7helpers10Properties3getERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
  437|     11|{
  438|     11|	PropertyMap::const_iterator it = properties->find(key);
  439|     11|	return (it != properties->end()) ? it->second : LogString();
  ------------------
  |  Branch (439:9): [True: 5, False: 6]
  ------------------
  440|     11|}
_ZN7log4cxx7helpers10Properties4loadENSt3__110shared_ptrINS0_11InputStreamEEE:
  443|      1|{
  444|      1|	auto contents = InputStreamReader(inStream, CharsetDecoder::getISOLatinDecoder()).read();
  445|      1|	PropertyParser().parse(contents, *this);
  446|      1|}
_ZNK7log4cxx7helpers10Properties13propertyNamesEv:
  449|      3|{
  450|      3|	std::vector<LogString> names;
  451|      3|	names.reserve(properties->size());
  452|       |
  453|      3|	for (auto const& item : *properties)
  ------------------
  |  Branch (453:24): [True: 33, False: 3]
  ------------------
  454|     33|	{
  455|     33|		const LogString& key = item.first;
  456|     33|		names.push_back(key);
  457|     33|	}
  458|       |
  459|      3|	return names;
  460|      3|}
_ZNK7log4cxx7helpers10Properties7isEmptyEv:
  463|      1|{
  464|      1|	return properties->empty();
  465|      1|}
_ZN14PropertyParser5parseERNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERN7log4cxx7helpers10PropertiesE:
   31|      1|		{
   32|      1|			LogString key, element;
   33|      1|			LexemType lexemType = BEGIN;
   34|      1|			logchar c;
   35|      1|			bool finished = false;
   36|       |
   37|      1|			if (!get(in, c))
  ------------------
  |  Branch (37:8): [True: 0, False: 1]
  ------------------
   38|      0|			{
   39|      0|				return;
   40|      0|			}
   41|       |
   42|  1.02k|			while (!finished)
  ------------------
  |  Branch (42:11): [True: 1.02k, False: 1]
  ------------------
   43|  1.02k|			{
   44|  1.02k|				switch (lexemType)
  ------------------
  |  Branch (44:13): [True: 1.02k, False: 0]
  ------------------
   45|  1.02k|				{
   46|     22|					case BEGIN:
  ------------------
  |  Branch (46:6): [True: 22, False: 1.00k]
  ------------------
   47|     22|						switch (c)
   48|     22|						{
   49|      0|							case 0x20: // ' '
  ------------------
  |  Branch (49:8): [True: 0, False: 22]
  ------------------
   50|      0|							case 0x09: // '\t'
  ------------------
  |  Branch (50:8): [True: 0, False: 22]
  ------------------
   51|      2|							case 0x0A: // '\n'
  ------------------
  |  Branch (51:8): [True: 2, False: 20]
  ------------------
   52|      2|							case 0x0D: // '\r'
  ------------------
  |  Branch (52:8): [True: 0, False: 22]
  ------------------
   53|      2|								if (!get(in, c))
  ------------------
  |  Branch (53:13): [True: 0, False: 2]
  ------------------
   54|      0|								{
   55|      0|									finished = true;
   56|      0|								}
   57|       |
   58|      2|								break;
   59|       |
   60|     16|							case 0x23: // '#'
  ------------------
  |  Branch (60:8): [True: 16, False: 6]
  ------------------
   61|     16|							case 0x21: // '!'
  ------------------
  |  Branch (61:8): [True: 0, False: 22]
  ------------------
   62|     16|								lexemType = COMMENT;
   63|       |
   64|     16|								if (!get(in, c))
  ------------------
  |  Branch (64:13): [True: 0, False: 16]
  ------------------
   65|      0|								{
   66|      0|									finished = true;
   67|      0|								}
   68|       |
   69|     16|								break;
   70|       |
   71|      4|							default:
  ------------------
  |  Branch (71:8): [True: 4, False: 18]
  ------------------
   72|      4|								lexemType = KEY;
   73|      4|								break;
   74|     22|						}
   75|       |
   76|     22|						break;
   77|       |
   78|    121|					case KEY:
  ------------------
  |  Branch (78:6): [True: 121, False: 907]
  ------------------
   79|    121|						switch (c)
   80|    121|						{
   81|      0|							case 0x5C: // '\\'
  ------------------
  |  Branch (81:8): [True: 0, False: 121]
  ------------------
   82|      0|								lexemType = KEY_ESCAPE;
   83|       |
   84|      0|								if (!get(in, c))
  ------------------
  |  Branch (84:13): [True: 0, False: 0]
  ------------------
   85|      0|								{
   86|      0|									finished = true;
   87|      0|								}
   88|       |
   89|      0|								break;
   90|       |
   91|      0|							case 0x09: // '\t'
  ------------------
  |  Branch (91:8): [True: 0, False: 121]
  ------------------
   92|      0|							case 0x20: // ' '
  ------------------
  |  Branch (92:8): [True: 0, False: 121]
  ------------------
   93|      0|							case 0x3A: // ':'
  ------------------
  |  Branch (93:8): [True: 0, False: 121]
  ------------------
   94|      4|							case 0x3D: // '='
  ------------------
  |  Branch (94:8): [True: 4, False: 117]
  ------------------
   95|      4|								lexemType = DELIMITER;
   96|       |
   97|      4|								if (!get(in, c))
  ------------------
  |  Branch (97:13): [True: 0, False: 4]
  ------------------
   98|      0|								{
   99|      0|									finished = true;
  100|      0|								}
  101|       |
  102|      4|								break;
  103|       |
  104|      0|							case 0x0A:
  ------------------
  |  Branch (104:8): [True: 0, False: 121]
  ------------------
  105|      0|							case 0x0D:
  ------------------
  |  Branch (105:8): [True: 0, False: 121]
  ------------------
  106|       |								// key associated with an empty string element
  107|      0|								properties.setProperty(key, LogString());
  108|      0|								key.erase(key.begin(), key.end());
  109|      0|								lexemType = BEGIN;
  110|       |
  111|      0|								if (!get(in, c))
  ------------------
  |  Branch (111:13): [True: 0, False: 0]
  ------------------
  112|      0|								{
  113|      0|									finished = true;
  114|      0|								}
  115|       |
  116|      0|								break;
  117|       |
  118|    117|							default:
  ------------------
  |  Branch (118:8): [True: 117, False: 4]
  ------------------
  119|    117|								key.append(1, c);
  120|       |
  121|    117|								if (!get(in, c))
  ------------------
  |  Branch (121:13): [True: 0, False: 117]
  ------------------
  122|      0|								{
  123|      0|									finished = true;
  124|      0|								}
  125|       |
  126|    117|								break;
  127|    121|						}
  128|       |
  129|    121|						break;
  130|       |
  131|    121|					case KEY_ESCAPE:
  ------------------
  |  Branch (131:6): [True: 0, False: 1.02k]
  ------------------
  132|      0|						switch (c)
  133|      0|						{
  134|      0|							case 0x74: // 't'
  ------------------
  |  Branch (134:8): [True: 0, False: 0]
  ------------------
  135|      0|								key.append(1, 0x09);
  136|      0|								lexemType = KEY;
  137|      0|								break;
  138|       |
  139|      0|							case 0x6E: // 'n'
  ------------------
  |  Branch (139:8): [True: 0, False: 0]
  ------------------
  140|      0|								key.append(1, 0x0A);
  141|      0|								lexemType = KEY;
  142|      0|								break;
  143|       |
  144|      0|							case 0x72: // 'r'
  ------------------
  |  Branch (144:8): [True: 0, False: 0]
  ------------------
  145|      0|								key.append(1, 0x0D);
  146|      0|								lexemType = KEY;
  147|      0|								break;
  148|       |
  149|      0|							case 0x0A: // '\n'
  ------------------
  |  Branch (149:8): [True: 0, False: 0]
  ------------------
  150|      0|								lexemType = KEY_CONTINUE;
  151|      0|								break;
  152|       |
  153|      0|							case 0x0D: // '\r'
  ------------------
  |  Branch (153:8): [True: 0, False: 0]
  ------------------
  154|      0|								lexemType = KEY_CONTINUE2;
  155|      0|								break;
  156|       |
  157|      0|							default:
  ------------------
  |  Branch (157:8): [True: 0, False: 0]
  ------------------
  158|      0|								key.append(1, c);
  159|      0|								lexemType = KEY;
  160|      0|						}
  161|       |
  162|      0|						if (!get(in, c))
  ------------------
  |  Branch (162:11): [True: 0, False: 0]
  ------------------
  163|      0|						{
  164|      0|							finished = true;
  165|      0|						}
  166|       |
  167|      0|						break;
  168|       |
  169|      0|					case KEY_CONTINUE:
  ------------------
  |  Branch (169:6): [True: 0, False: 1.02k]
  ------------------
  170|      0|						switch (c)
  171|      0|						{
  172|      0|							case 0x20:  // ' '
  ------------------
  |  Branch (172:8): [True: 0, False: 0]
  ------------------
  173|      0|							case 0x09: //  '\t'
  ------------------
  |  Branch (173:8): [True: 0, False: 0]
  ------------------
  174|      0|								if (!get(in, c))
  ------------------
  |  Branch (174:13): [True: 0, False: 0]
  ------------------
  175|      0|								{
  176|      0|									finished = true;
  177|      0|								}
  178|       |
  179|      0|								break;
  180|       |
  181|      0|							default:
  ------------------
  |  Branch (181:8): [True: 0, False: 0]
  ------------------
  182|      0|								lexemType = KEY;
  183|      0|								break;
  184|      0|						}
  185|       |
  186|      0|						break;
  187|       |
  188|      0|					case KEY_CONTINUE2:
  ------------------
  |  Branch (188:6): [True: 0, False: 1.02k]
  ------------------
  189|      0|						switch (c)
  190|      0|						{
  191|      0|							case 0x0A: // '\n'
  ------------------
  |  Branch (191:8): [True: 0, False: 0]
  ------------------
  192|      0|								if (!get(in, c))
  ------------------
  |  Branch (192:13): [True: 0, False: 0]
  ------------------
  193|      0|								{
  194|      0|									finished = true;
  195|      0|								}
  196|       |
  197|      0|								lexemType = KEY_CONTINUE;
  198|      0|								break;
  199|       |
  200|      0|							default:
  ------------------
  |  Branch (200:8): [True: 0, False: 0]
  ------------------
  201|      0|								lexemType = KEY_CONTINUE;
  202|      0|								break;
  203|      0|						}
  204|       |
  205|      0|						break;
  206|       |
  207|      4|					case DELIMITER:
  ------------------
  |  Branch (207:6): [True: 4, False: 1.02k]
  ------------------
  208|      4|						switch (c)
  209|      4|						{
  210|      0|							case 0x09: // '\t'
  ------------------
  |  Branch (210:8): [True: 0, False: 4]
  ------------------
  211|      0|							case 0x20: // ' '
  ------------------
  |  Branch (211:8): [True: 0, False: 4]
  ------------------
  212|      0|							case 0x3A: // ':'
  ------------------
  |  Branch (212:8): [True: 0, False: 4]
  ------------------
  213|      0|							case 0x3D: // '='
  ------------------
  |  Branch (213:8): [True: 0, False: 4]
  ------------------
  214|      0|								if (!get(in, c))
  ------------------
  |  Branch (214:13): [True: 0, False: 0]
  ------------------
  215|      0|								{
  216|      0|									finished = true;
  217|      0|								}
  218|       |
  219|      0|								break;
  220|       |
  221|      4|							default:
  ------------------
  |  Branch (221:8): [True: 4, False: 0]
  ------------------
  222|      4|								lexemType = ELEMENT;
  223|      4|								break;
  224|      4|						}
  225|       |
  226|      4|						break;
  227|       |
  228|    110|					case ELEMENT:
  ------------------
  |  Branch (228:6): [True: 110, False: 918]
  ------------------
  229|    110|						switch (c)
  230|    110|						{
  231|      0|							case 0x5C: // '\\'
  ------------------
  |  Branch (231:8): [True: 0, False: 110]
  ------------------
  232|      0|								lexemType = ELEMENT_ESCAPE;
  233|       |
  234|      0|								if (!get(in, c))
  ------------------
  |  Branch (234:13): [True: 0, False: 0]
  ------------------
  235|      0|								{
  236|      0|									finished = true;
  237|      0|								}
  238|       |
  239|      0|								break;
  240|       |
  241|      4|							case 0x0A: // '\n'
  ------------------
  |  Branch (241:8): [True: 4, False: 106]
  ------------------
  242|      4|							case 0x0D: // '\r'
  ------------------
  |  Branch (242:8): [True: 0, False: 110]
  ------------------
  243|       |								// key associated with an empty string element
  244|      4|								properties.setProperty(key, element);
  245|      4|								key.erase(key.begin(), key.end());
  246|      4|								element.erase(element.begin(), element.end());
  247|      4|								lexemType = BEGIN;
  248|       |
  249|      4|								if (!get(in, c))
  ------------------
  |  Branch (249:13): [True: 1, False: 3]
  ------------------
  250|      1|								{
  251|      1|									finished = true;
  252|      1|								}
  253|       |
  254|      4|								break;
  255|       |
  256|    106|							default:
  ------------------
  |  Branch (256:8): [True: 106, False: 4]
  ------------------
  257|    106|								element.append(1, c);
  258|       |
  259|    106|								if (!get(in, c))
  ------------------
  |  Branch (259:13): [True: 0, False: 106]
  ------------------
  260|      0|								{
  261|      0|									finished = true;
  262|      0|								}
  263|       |
  264|    106|								break;
  265|    110|						}
  266|       |
  267|    110|						break;
  268|       |
  269|    110|					case ELEMENT_ESCAPE:
  ------------------
  |  Branch (269:6): [True: 0, False: 1.02k]
  ------------------
  270|      0|						switch (c)
  271|      0|						{
  272|      0|							case 0x74: // 't'
  ------------------
  |  Branch (272:8): [True: 0, False: 0]
  ------------------
  273|      0|								element.append(1, 0x09);
  274|      0|								lexemType = ELEMENT;
  275|      0|								break;
  276|       |
  277|      0|							case 0x6E: // 'n'
  ------------------
  |  Branch (277:8): [True: 0, False: 0]
  ------------------
  278|      0|								element.append(1, 0x0A);
  279|      0|								lexemType = ELEMENT;
  280|      0|								break;
  281|       |
  282|      0|							case 0x72: // 'r'
  ------------------
  |  Branch (282:8): [True: 0, False: 0]
  ------------------
  283|      0|								element.append(1, 0x0D);
  284|      0|								lexemType = ELEMENT;
  285|      0|								break;
  286|       |
  287|      0|							case 0x0A: // '\n'
  ------------------
  |  Branch (287:8): [True: 0, False: 0]
  ------------------
  288|      0|								lexemType = ELEMENT_CONTINUE;
  289|      0|								break;
  290|       |
  291|      0|							case 0x0D: // '\r'
  ------------------
  |  Branch (291:8): [True: 0, False: 0]
  ------------------
  292|      0|								lexemType = ELEMENT_CONTINUE2;
  293|      0|								break;
  294|       |
  295|      0|							default:
  ------------------
  |  Branch (295:8): [True: 0, False: 0]
  ------------------
  296|      0|								element.append(1, c);
  297|      0|								lexemType = ELEMENT;
  298|      0|								break;
  299|      0|						}
  300|       |
  301|      0|						if (!get(in, c))
  ------------------
  |  Branch (301:11): [True: 0, False: 0]
  ------------------
  302|      0|						{
  303|      0|							finished = true;
  304|      0|						}
  305|       |
  306|      0|						break;
  307|       |
  308|      0|					case ELEMENT_CONTINUE:
  ------------------
  |  Branch (308:6): [True: 0, False: 1.02k]
  ------------------
  309|      0|						switch (c)
  310|      0|						{
  311|      0|							case 0x20: // ' '
  ------------------
  |  Branch (311:8): [True: 0, False: 0]
  ------------------
  312|      0|							case 0x09: // '\t'
  ------------------
  |  Branch (312:8): [True: 0, False: 0]
  ------------------
  313|      0|								if (!get(in, c))
  ------------------
  |  Branch (313:13): [True: 0, False: 0]
  ------------------
  314|      0|								{
  315|      0|									finished = true;
  316|      0|								}
  317|       |
  318|      0|								break;
  319|       |
  320|      0|							default:
  ------------------
  |  Branch (320:8): [True: 0, False: 0]
  ------------------
  321|      0|								lexemType = ELEMENT;
  322|      0|								break;
  323|      0|						}
  324|       |
  325|      0|						break;
  326|       |
  327|      0|					case ELEMENT_CONTINUE2:
  ------------------
  |  Branch (327:6): [True: 0, False: 1.02k]
  ------------------
  328|      0|						switch (c)
  329|      0|						{
  330|      0|							case 0x0A: // '\n'
  ------------------
  |  Branch (330:8): [True: 0, False: 0]
  ------------------
  331|      0|								if (!get(in, c))
  ------------------
  |  Branch (331:13): [True: 0, False: 0]
  ------------------
  332|      0|								{
  333|      0|									finished = true;
  334|      0|								}
  335|       |
  336|      0|								lexemType = ELEMENT_CONTINUE;
  337|      0|								break;
  338|       |
  339|      0|							default:
  ------------------
  |  Branch (339:8): [True: 0, False: 0]
  ------------------
  340|      0|								lexemType = ELEMENT_CONTINUE;
  341|      0|								break;
  342|      0|						}
  343|       |
  344|      0|						break;
  345|       |
  346|    771|					case COMMENT:
  ------------------
  |  Branch (346:6): [True: 771, False: 257]
  ------------------
  347|    771|						if (c == 0x0A || c == 0x0D)
  ------------------
  |  Branch (347:11): [True: 16, False: 755]
  |  Branch (347:24): [True: 0, False: 755]
  ------------------
  348|     16|						{
  349|     16|							lexemType = BEGIN;
  350|     16|						}
  351|       |
  352|    771|						if (!get(in, c))
  ------------------
  |  Branch (352:11): [True: 0, False: 771]
  ------------------
  353|      0|						{
  354|      0|							finished = true;
  355|      0|						}
  356|       |
  357|    771|						break;
  358|  1.02k|				}
  359|  1.02k|			}
  360|       |
  361|      1|			if (!key.empty())
  ------------------
  |  Branch (361:8): [True: 0, False: 1]
  ------------------
  362|      0|			{
  363|      0|				properties.setProperty(key, element);
  364|      0|			}
  365|      1|		}
_ZN14PropertyParser3getERNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERc:
  369|  1.02k|		{
  370|  1.02k|			if (in.empty())
  ------------------
  |  Branch (370:8): [True: 1, False: 1.02k]
  ------------------
  371|      1|			{
  372|      1|				c = 0;
  373|      1|				return false;
  374|      1|			}
  375|       |
  376|  1.02k|			c = in[0];
  377|  1.02k|			in.erase(in.begin());
  378|  1.02k|			return true;
  379|  1.02k|		}

_ZN7log4cxx20PropertyConfiguratorC1Ev:
  117|      1|	: registry(new std::map<LogString, AppenderPtr>())
  118|      1|	, loggerFactory(new DefaultLoggerFactory())
  119|       |#endif
  120|      1|{
  121|      1|}
_ZN7log4cxx20PropertyConfiguratorD2Ev:
  124|      1|{
  125|      1|#if LOG4CXX_ABI_VERSION <= 15
  126|      1|	delete registry;
  127|      1|#endif
  128|      1|}
_ZN7log4cxx20PropertyConfigurator11doConfigureERKNS_4FileENSt3__110shared_ptrINS_3spi16LoggerRepositoryEEE:
  138|      1|{
  139|      1|	auto result = spi::ConfigurationStatus::NotConfigured;
  140|      1|	if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (140:6): [True: 0, False: 1]
  ------------------
  141|      0|	{
  142|      0|		LogLog::debug(LOG4CXX_STR("Loading configuration file [")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  143|      0|			+ configFileName.getPath() + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  144|      0|	}
  145|      1|	Properties props = Configurator::properties();
  146|      1|	try
  147|      1|	{
  148|      1|		InputStreamPtr inputStream = InputStreamPtr( new FileInputStream(configFileName) );
  149|      1|		props.load(inputStream);
  150|      1|	}
  151|      1|	catch (const IOException& ex)
  152|      1|	{
  153|      0|		LogLog::error(LOG4CXX_STR("Could not load properties from [")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  154|      0|			+ configFileName.getPath() + LOG4CXX_STR("]"), ex);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  155|      0|		return result;
  156|      0|	}
  157|       |
  158|      1|	try
  159|      1|	{
  160|      1|		result = doConfigure(props, repository ? repository : LogManager::getLoggerRepository());
  ------------------
  |  Branch (160:31): [True: 1, False: 0]
  ------------------
  161|      1|#if LOG4CXX_ABI_VERSION <= 15
  162|      1|		if (m_priv->registry->empty())
  ------------------
  |  |  115|      1|#define m_priv this
  ------------------
  |  Branch (162:7): [True: 0, False: 1]
  ------------------
  163|       |#else
  164|       |		if (!m_priv->appenderAdded)
  165|       |#endif
  166|      0|		{
  167|      0|			LogLog::warn(LOG4CXX_STR("[") + configFileName.getPath()
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  168|      0|				+ LOG4CXX_STR("] did not add an ") + Appender::getStaticClass().getName()
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  169|      0|				+ LOG4CXX_STR(" to a logger"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  170|      0|		}
  171|      1|	}
  172|      1|	catch (const std::exception& ex)
  173|      1|	{
  174|      0|		LogLog::error(LOG4CXX_STR("Exception thrown processing [")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  175|      0|			+ configFileName.getPath() + LOG4CXX_STR("]: "), ex);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  176|      0|	}
  177|       |
  178|      1|	return result;
  179|      1|}
_ZN7log4cxx20PropertyConfigurator9configureERKNS_4FileE:
  182|      1|{
  183|      1|	return PropertyConfigurator().doConfigure(configFilename, LogManager::getLoggerRepository());
  184|      1|}
_ZN7log4cxx20PropertyConfigurator11doConfigureERNS_7helpers10PropertiesENSt3__110shared_ptrINS_3spi16LoggerRepositoryEEE:
  208|      1|{
  209|      1|	LogString debugValue(properties.getProperty(LOG4CXX_STR("log4j.debug")));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  210|      1|	if (!debugValue.empty())
  ------------------
  |  Branch (210:6): [True: 0, False: 1]
  ------------------
  211|      0|	{
  212|      0|		LogLog::setInternalDebugging(OptionConverter::toBoolean(debugValue, true));
  213|      0|	}
  214|       |
  215|      1|	LogString colorValue(properties.getProperty(LOG4CXX_STR("log4j.color")));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  216|      1|	if (!colorValue.empty())
  ------------------
  |  Branch (216:6): [True: 0, False: 1]
  ------------------
  217|      0|	{
  218|      0|		LogLog::setColorEnabled(OptionConverter::toBoolean(colorValue, true));
  219|      0|	}
  220|       |
  221|      1|	LogString thresholdStr =
  222|      1|		OptionConverter::findAndSubst(LOG4CXX_STR("log4j.threshold"), properties);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  223|       |
  224|      1|	if (!thresholdStr.empty())
  ------------------
  |  Branch (224:6): [True: 0, False: 1]
  ------------------
  225|      0|	{
  226|      0|		hierarchy->setThreshold(OptionConverter::toLevel(thresholdStr, Level::getAll()));
  227|      0|		if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (227:7): [True: 0, False: 0]
  ------------------
  228|      0|		{
  229|      0|			LogLog::debug(LOG4CXX_STR("Repository threshold =[")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  230|      0|				+ hierarchy->getThreshold()->toString()
  231|      0|				+ LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  232|      0|		}
  233|      0|	}
  234|       |
  235|      1|	LogString threadConfigurationValue(properties.getProperty(LOG4CXX_STR("log4j.threadConfiguration")));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  236|       |
  237|      1|	if ( threadConfigurationValue == LOG4CXX_STR("NoConfiguration") )
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (237:7): [True: 0, False: 1]
  ------------------
  238|      0|	{
  239|      0|		helpers::ThreadUtility::configure( ThreadConfigurationType::NoConfiguration );
  240|      0|	}
  241|      1|	else if ( threadConfigurationValue == LOG4CXX_STR("BlockSignalsOnly") )
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (241:12): [True: 0, False: 1]
  ------------------
  242|      0|	{
  243|      0|		helpers::ThreadUtility::configure( ThreadConfigurationType::BlockSignalsOnly );
  244|      0|	}
  245|      1|	else if ( threadConfigurationValue == LOG4CXX_STR("NameThreadOnly") )
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (245:12): [True: 0, False: 1]
  ------------------
  246|      0|	{
  247|      0|		helpers::ThreadUtility::configure( ThreadConfigurationType::NameThreadOnly );
  248|      0|	}
  249|      1|	else if ( threadConfigurationValue == LOG4CXX_STR("BlockSignalsAndNameThread") )
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (249:12): [True: 0, False: 1]
  ------------------
  250|      0|	{
  251|      0|		helpers::ThreadUtility::configure( ThreadConfigurationType::BlockSignalsAndNameThread );
  252|      0|	}
  253|       |
  254|      1|	configureRootLogger(properties, hierarchy);
  255|      1|	configureLoggerFactory(properties);
  256|      1|	parseCatsAndRenderers(properties, hierarchy);
  257|      1|	LogLog::debug(LOG4CXX_STR("Finished configuring."));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  258|      1|#if LOG4CXX_ABI_VERSION <= 15
  259|      1|	auto result = m_priv->registry->empty()
  ------------------
  |  |  115|      1|#define m_priv this
  ------------------
  |  Branch (259:16): [True: 0, False: 1]
  ------------------
  260|       |#else
  261|       |	auto result = !m_priv->appenderAdded
  262|       |#endif
  263|      1|		? spi::ConfigurationStatus::NotConfigured
  264|      1|		: spi::ConfigurationStatus::Configured;
  265|       |
  266|      1|	if (spi::ConfigurationStatus::Configured == result)
  ------------------
  |  Branch (266:6): [True: 1, False: 0]
  ------------------
  267|      1|		hierarchy->setConfigured(true);
  268|      1|	return result;
  269|      1|}
_ZN7log4cxx20PropertyConfigurator22configureLoggerFactoryERNS_7helpers10PropertiesE:
  272|      1|{
  273|      1|	LogString factoryClassName =
  274|      1|		OptionConverter::findAndSubst(LOG4CXX_STR("log4j.loggerFactory"), props);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  275|       |
  276|      1|	if (!factoryClassName.empty())
  ------------------
  |  Branch (276:6): [True: 0, False: 1]
  ------------------
  277|      0|	{
  278|      0|		auto instance = OptionConverter::instantiateByClassName
  279|      0|			( StringHelper::trim(factoryClassName)
  280|      0|			, LoggerFactory::getStaticClass()
  281|      0|#if LOG4CXX_ABI_VERSION <= 15
  282|      0|			, std::make_shared<DefaultLoggerFactory>()
  283|       |#else
  284|       |			, std::make_shared<LoggerFactory>()
  285|       |#endif
  286|      0|			);
  287|       |
  288|      0|		m_priv->loggerFactory = LOG4CXX_NS::cast<LoggerFactory>( instance );
  ------------------
  |  |  115|      0|#define m_priv this
  ------------------
  289|      0|		PropertySetter::setProperties(m_priv->loggerFactory, props, LOG4CXX_STR("log4j.factory."));
  ------------------
  |  |  115|      0|#define m_priv this
  ------------------
              		PropertySetter::setProperties(m_priv->loggerFactory, props, LOG4CXX_STR("log4j.factory."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  290|      0|	}
  291|      1|}
_ZN7log4cxx20PropertyConfigurator19configureRootLoggerERNS_7helpers10PropertiesERNSt3__110shared_ptrINS_3spi16LoggerRepositoryEEE:
  295|      1|{
  296|      1|	LogString effectivePrefix(LOG4CXX_STR("log4j.rootLogger"));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  297|      1|	LogString value = OptionConverter::findAndSubst(effectivePrefix, props);
  298|       |
  299|      1|	if (value.empty())
  ------------------
  |  Branch (299:6): [True: 0, False: 1]
  ------------------
  300|      0|	{
  301|      0|		effectivePrefix = LOG4CXX_STR("log4j.rootCategory");
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  302|      0|		value = OptionConverter::findAndSubst(effectivePrefix, props);
  303|      0|	}
  304|       |
  305|      1|	if (value.empty())
  ------------------
  |  Branch (305:6): [True: 0, False: 1]
  ------------------
  306|      0|	{
  307|      0|		LogLog::debug(LOG4CXX_STR("Neither 'log4j.rootLogger' or 'log4j.rootCategory' found. Is this OK?"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  308|      0|	}
  309|      1|	else
  310|      1|	{
  311|      1|		LoggerPtr root = hierarchy->getRootLogger();
  312|      1|		parseLogger(props, root, effectivePrefix, LOG4CXX_STR("root"), value, true);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  313|      1|	}
  314|      1|}
_ZN7log4cxx20PropertyConfigurator21parseCatsAndRenderersERNS_7helpers10PropertiesERNSt3__110shared_ptrINS_3spi16LoggerRepositoryEEE:
  318|      1|{
  319|      1|	for (auto key : props.propertyNames())
  ------------------
  |  Branch (319:16): [True: 11, False: 1]
  ------------------
  320|     11|	{
  321|     11|		auto categoryFound = (0 == key.find(LOG4CXX_STR("log4j.category.")));
  ------------------
  |  |   51|     11|		#define LOG4CXX_STR(str) str
  ------------------
  322|     11|		if (categoryFound || 0 == key.find(LOG4CXX_STR("log4j.logger.")))
  ------------------
  |  |   51|     11|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (322:7): [True: 0, False: 11]
  |  Branch (322:24): [True: 0, False: 11]
  ------------------
  323|      0|		{
  324|      0|			auto prefixLength =
  325|      0|				( categoryFound
  ------------------
  |  Branch (325:7): [True: 0, False: 0]
  ------------------
  326|      0|				? LogString(LOG4CXX_STR("log4j.category."))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  327|      0|				: LogString(LOG4CXX_STR("log4j.logger."))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  328|      0|				).length();
  329|      0|			auto loggerName = key.substr(prefixLength);
  330|      0|			auto value = OptionConverter::findAndSubst(key, props);
  331|      0|			auto logger = hierarchy->getLogger(loggerName, m_priv->loggerFactory);
  ------------------
  |  |  115|      0|#define m_priv this
  ------------------
  332|      0|			auto additivity = parseAdditivityForLogger(props, logger, loggerName);
  333|      0|			parseLogger(props, logger, key, loggerName, value, additivity);
  334|       |
  335|      0|		}
  336|     11|	}
  337|      1|}
_ZN7log4cxx20PropertyConfigurator11parseLoggerERNS_7helpers10PropertiesERNSt3__110shared_ptrINS_6LoggerEEERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEESG_SG_b:
  365|      1|{
  366|      1|	if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (366:6): [True: 0, False: 1]
  ------------------
  367|      0|	{
  368|      0|		LogLog::debug(((LogString) LOG4CXX_STR("Parsing for ["))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  369|      0|			+ loggerName
  370|      0|			+ LOG4CXX_STR("] with value=[")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  371|      0|			+ value + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  372|      0|	}
  373|       |
  374|       |	// We must skip over ',' but not white space
  375|      1|	StringTokenizer st(value, LOG4CXX_STR(","));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  376|       |
  377|       |	// If value is not in the form ", appender.." or "", then we should set
  378|       |	// the level of the logger.
  379|      1|	if (!(value.find(LOG4CXX_STR(",")) == 0 || value.empty()))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (379:8): [True: 0, False: 1]
  |  Branch (379:45): [True: 0, False: 1]
  ------------------
  380|      1|	{
  381|       |		// just to be on the safe side...
  382|      1|		if (!st.hasMoreTokens())
  ------------------
  |  Branch (382:7): [True: 0, False: 1]
  ------------------
  383|      0|		{
  384|      0|			return;
  385|      0|		}
  386|       |
  387|      1|		LogString levelStr = st.nextToken();
  388|       |
  389|       |		// If the level value is inherited, set logger level value to
  390|       |		// null. We also check that the user has not specified inherited for the
  391|       |		// root logger.
  392|      1|		if (StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("INHERITED"), LOG4CXX_STR("inherited"))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
              		if (StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("INHERITED"), LOG4CXX_STR("inherited"))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (392:7): [True: 0, False: 1]
  ------------------
  393|      1|			|| StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
              			|| StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (393:7): [True: 0, False: 1]
  ------------------
  394|      0|		{
  395|      0|			if (loggerName == LOG4CXX_STR("root"))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (395:8): [True: 0, False: 0]
  ------------------
  396|      0|			{
  397|      0|				LogLog::warn(LOG4CXX_STR("Root level cannot be ") + levelStr + LOG4CXX_STR(". Ignoring directive."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              				LogLog::warn(LOG4CXX_STR("Root level cannot be ") + levelStr + LOG4CXX_STR(". Ignoring directive."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  398|      0|			}
  399|      0|			else
  400|      0|			{
  401|      0|				logger->setLevel(0);
  402|      0|			}
  403|      0|		}
  404|      1|		else
  405|      1|		{
  406|      1|			logger->setLevel(OptionConverter::toLevel(levelStr, Level::getDebug()));
  407|      1|		}
  408|      1|		if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (408:7): [True: 0, False: 1]
  ------------------
  409|      0|		{
  410|      0|			LogLog::debug(loggerName + LOG4CXX_STR(" level set to ") +
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  411|      0|				logger->getEffectiveLevel()->toString());
  412|      0|		}
  413|       |
  414|      1|	}
  415|       |
  416|      1|	AsyncAppenderPtr async;
  417|      1|	auto lsAsynchronous = OptionConverter::findAndSubst(LOG4CXX_STR("log4j.asynchronous.") + loggerName, props);
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
  418|      1|	if (!lsAsynchronous.empty() && OptionConverter::toBoolean(lsAsynchronous, true))
  ------------------
  |  Branch (418:6): [True: 0, False: 1]
  |  Branch (418:33): [True: 0, False: 0]
  ------------------
  419|      0|	{
  420|      0|		async = std::make_shared<AsyncAppender>();
  421|      0|		async->setName(loggerName);
  422|      0|	}
  423|       |
  424|      1|	std::vector<AppenderPtr> newappenders;
  425|      2|	while (st.hasMoreTokens())
  ------------------
  |  Branch (425:9): [True: 1, False: 1]
  ------------------
  426|      1|	{
  427|      1|		auto appenderName = StringHelper::trim(st.nextToken());
  428|       |
  429|      1|		if (appenderName.empty() || appenderName == LOG4CXX_STR(","))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (429:7): [True: 0, False: 1]
  |  Branch (429:31): [True: 0, False: 1]
  ------------------
  430|      0|		{
  431|      0|			continue;
  432|      0|		}
  433|       |
  434|      1|		if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (434:7): [True: 0, False: 1]
  ------------------
  435|      0|		{
  436|      0|			LogLog::debug(LOG4CXX_STR("Parsing ") + Appender::getStaticClass().getName()
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  437|      0|				+ LOG4CXX_STR(" named [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              				+ LOG4CXX_STR(" named [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  438|      0|		}
  439|      1|		if (auto appender = parseAppender(props, appenderName))
  ------------------
  |  Branch (439:12): [True: 1, False: 0]
  ------------------
  440|      1|		{
  441|      1|			newappenders.push_back(appender);
  442|      1|			if (log4cxx::cast<AsyncAppender>(appender)) // An explicitly configured AsyncAppender?
  ------------------
  |  Branch (442:8): [True: 0, False: 1]
  ------------------
  443|      0|				async.reset(); // Not required
  444|      1|			if (async)
  ------------------
  |  Branch (444:8): [True: 0, False: 1]
  ------------------
  445|      0|				async->addAppender(appender);
  446|      1|		}
  447|      1|	}
  448|       |#if 15 < LOG4CXX_ABI_VERSION
  449|       |	if (!newappenders.empty())
  450|       |		m_priv->appenderAdded = true;
  451|       |#endif
  452|      1|	if (async && !newappenders.empty())
  ------------------
  |  Branch (452:6): [True: 0, False: 1]
  |  Branch (452:15): [True: 0, False: 0]
  ------------------
  453|      0|	{
  454|      0|		if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (454:7): [True: 0, False: 0]
  ------------------
  455|      0|		{
  456|      0|			LogLog::debug(LOG4CXX_STR("Asynchronous logging for [")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  457|      0|					+ loggerName + LOG4CXX_STR("] is on"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  458|      0|		}
  459|      0|		logger->reconfigure( {async}, additivity );
  460|      0|	}
  461|      1|	else
  462|      1|		logger->reconfigure( newappenders, additivity );
  463|      1|}
_ZN7log4cxx20PropertyConfigurator13parseAppenderERNS_7helpers10PropertiesERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE:
  467|      1|{
  468|      1|	AppenderPtr appender = registryGet(appenderName);
  469|       |
  470|      1|	if (appender != 0)
  ------------------
  |  Branch (470:6): [True: 0, False: 1]
  ------------------
  471|      0|	{
  472|      0|		if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (472:7): [True: 0, False: 0]
  ------------------
  473|      0|		{
  474|      0|			LogLog::debug((LogString) LOG4CXX_STR("Appender [")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  475|      0|				+ appenderName + LOG4CXX_STR("] was already parsed."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  476|      0|		}
  477|       |
  478|      0|		return appender;
  479|      0|	}
  480|       |
  481|       |	// Appender was not previously initialized.
  482|      1|	LogString prefix = LOG4CXX_STR("log4j.appender.") + appenderName;
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
  483|      1|	LogString layoutPrefix = prefix + LOG4CXX_STR(".layout");
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  484|       |
  485|      1|	std::shared_ptr<Object> obj =
  486|      1|		OptionConverter::instantiateByKey(
  487|      1|			props, prefix, Appender::getStaticClass(), 0);
  488|      1|	appender = LOG4CXX_NS::cast<Appender>( obj );
  489|       |
  490|       |	// Map obsolete DailyRollingFileAppender property configuration
  491|      1|	if (!appender &&
  ------------------
  |  Branch (491:6): [True: 0, False: 1]
  |  Branch (491:6): [True: 0, False: 1]
  ------------------
  492|      0|		StringHelper::endsWith(OptionConverter::findAndSubst(prefix, props), LOG4CXX_STR("DailyRollingFileAppender")))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (492:3): [True: 0, False: 0]
  ------------------
  493|      0|	{
  494|      0|		appender = std::make_shared<RollingFileAppender>();
  495|      0|		auto datePattern = OptionConverter::findAndSubst(prefix + LOG4CXX_STR(".datePattern"), props);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  496|      0|		if (!datePattern.empty())
  ------------------
  |  Branch (496:7): [True: 0, False: 0]
  ------------------
  497|      0|			props.put(prefix + LOG4CXX_STR(".fileDatePattern"), datePattern);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  498|      0|	}
  499|       |
  500|      1|	if (!appender)
  ------------------
  |  Branch (500:6): [True: 0, False: 1]
  ------------------
  501|      0|	{
  502|      0|		LogLog::error((LogString) LOG4CXX_STR("Could not instantiate ") + Appender::getStaticClass().getName()
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  503|      0|			+ LOG4CXX_STR(" named [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              			+ LOG4CXX_STR(" named [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  504|      0|		return 0;
  505|      0|	}
  506|       |
  507|      1|	appender->setName(appenderName);
  508|       |
  509|      1|	if (appender->instanceof(OptionHandler::getStaticClass()))
  ------------------
  |  Branch (509:6): [True: 1, False: 0]
  ------------------
  510|      1|	{
  511|      1|		if (appender->requiresLayout())
  ------------------
  |  Branch (511:7): [True: 1, False: 0]
  ------------------
  512|      1|		{
  513|      1|			LayoutPtr layout;
  514|      1|			std::shared_ptr<Object> obj =
  515|      1|				OptionConverter::instantiateByKey(
  516|      1|					props, layoutPrefix, Layout::getStaticClass(), 0);
  517|      1|			layout = LOG4CXX_NS::cast<Layout>( obj );
  518|       |
  519|      1|			if (layout != 0)
  ------------------
  |  Branch (519:8): [True: 1, False: 0]
  ------------------
  520|      1|			{
  521|      1|				appender->setLayout(layout);
  522|      1|				if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (522:9): [True: 0, False: 1]
  ------------------
  523|      0|				{
  524|      0|					LogLog::debug((LogString) LOG4CXX_STR("Parsing ") + Layout::getStaticClass().getName()
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  525|      0|						+ LOG4CXX_STR(" options for [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              						+ LOG4CXX_STR(" options for [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  526|      0|				}
  527|       |
  528|      1|				PropertySetter::setProperties(layout, props, layoutPrefix + LOG4CXX_STR("."));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  529|      1|				if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (529:9): [True: 0, False: 1]
  ------------------
  530|      0|				{
  531|      0|					LogLog::debug((LogString) LOG4CXX_STR("End of parsing for [")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  532|      0|						+ appenderName +  LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  533|      0|				}
  534|      1|			}
  535|      1|		}
  536|       |
  537|      1|		RollingFileAppenderPtr rolling = LOG4CXX_NS::cast<rolling::RollingFileAppender>(appender);
  538|      1|		if (rolling)
  ------------------
  |  Branch (538:7): [True: 0, False: 1]
  ------------------
  539|      0|		{
  540|      0|			LogString rollingPolicyKey = prefix + LOG4CXX_STR(".rollingPolicy");
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  541|      0|			if (!OptionConverter::findAndSubst(rollingPolicyKey, props).empty())
  ------------------
  |  Branch (541:8): [True: 0, False: 0]
  ------------------
  542|      0|			{
  543|      0|				RollingPolicyPtr rollingPolicy;
  544|      0|				std::shared_ptr<Object> rolling_obj =
  545|      0|					OptionConverter::instantiateByKey(
  546|      0|						props, rollingPolicyKey, RollingPolicy::getStaticClass(), 0);
  547|      0|				rollingPolicy = LOG4CXX_NS::cast<RollingPolicy>( rolling_obj );
  548|      0|				if(rollingPolicy)
  ------------------
  |  Branch (548:8): [True: 0, False: 0]
  ------------------
  549|      0|				{
  550|      0|					rolling->setRollingPolicy(rollingPolicy);
  551|       |
  552|      0|					if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (552:10): [True: 0, False: 0]
  ------------------
  553|      0|					{
  554|      0|						LogLog::debug((LogString) LOG4CXX_STR("Parsing ") + RollingPolicy::getStaticClass().getName()
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  555|      0|							+ LOG4CXX_STR(" options for [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              							+ LOG4CXX_STR(" options for [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  556|      0|					}
  557|      0|					PropertySetter::setProperties(rollingPolicy, props, rollingPolicyKey + LOG4CXX_STR("."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  558|      0|				}
  559|      0|			}
  560|       |
  561|      0|			LogString triggeringPolicyKey = prefix + LOG4CXX_STR(".triggeringPolicy");
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  562|      0|			if (!OptionConverter::findAndSubst(triggeringPolicyKey, props).empty())
  ------------------
  |  Branch (562:8): [True: 0, False: 0]
  ------------------
  563|      0|			{
  564|      0|				TriggeringPolicyPtr triggeringPolicy;
  565|      0|				std::shared_ptr<Object> triggering_obj =
  566|      0|					OptionConverter::instantiateByKey(
  567|      0|						props, triggeringPolicyKey, TriggeringPolicy::getStaticClass(), 0);
  568|      0|				triggeringPolicy = LOG4CXX_NS::cast<TriggeringPolicy>( triggering_obj );
  569|      0|				if(triggeringPolicy)
  ------------------
  |  Branch (569:8): [True: 0, False: 0]
  ------------------
  570|      0|				{
  571|      0|					rolling->setTriggeringPolicy(triggeringPolicy);
  572|       |
  573|      0|					if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (573:10): [True: 0, False: 0]
  ------------------
  574|      0|					{
  575|      0|						LogLog::debug((LogString) LOG4CXX_STR("Parsing ") + TriggeringPolicy::getStaticClass().getName()
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  576|      0|							+ LOG4CXX_STR(" options for [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              							+ LOG4CXX_STR(" options for [") + appenderName + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  577|      0|					}
  578|      0|					PropertySetter::setProperties(triggeringPolicy, props, triggeringPolicyKey + LOG4CXX_STR("."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  579|      0|				}
  580|      0|			}
  581|      0|		}
  582|       |
  583|      1|		PropertySetter::setProperties(appender, props, prefix + LOG4CXX_STR("."));
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  584|      1|		if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (584:7): [True: 0, False: 1]
  ------------------
  585|      0|		{
  586|      0|			LogLog::debug((LogString) LOG4CXX_STR("Parsed [")
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  587|      0|				+ appenderName + LOG4CXX_STR("] options."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  588|      0|		}
  589|      1|	}
  590|       |
  591|      1|	registryPut(appender);
  592|       |
  593|      1|	return appender;
  594|      1|}
_ZN7log4cxx20PropertyConfigurator11registryPutERKNSt3__110shared_ptrINS_8AppenderEEE:
  597|      1|{
  598|      1|	(*m_priv->registry)[appender->getName()] = appender;
  ------------------
  |  |  115|      1|#define m_priv this
  ------------------
  599|      1|}
_ZN7log4cxx20PropertyConfigurator11registryGetERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE:
  602|      1|{
  603|      1|	auto it = m_priv->registry->find(name);
  ------------------
  |  |  115|      1|#define m_priv this
  ------------------
  604|      1|	return (it == m_priv->registry->end()) ? AppenderPtr() : it->second;
  ------------------
  |  |  115|      1|#define m_priv this
  ------------------
  |  Branch (604:9): [True: 1, False: 0]
  ------------------
  605|      1|}

_ZN7log4cxx6config14PropertySetterC2ERKNSt3__110shared_ptrINS_7helpers6ObjectEEE:
   31|      2|PropertySetter::PropertySetter(const helpers::ObjectPtr& obj1) : obj(obj1)
   32|      2|{
   33|      2|}
_ZN7log4cxx6config14PropertySetter13setPropertiesERKNSt3__110shared_ptrINS_7helpers6ObjectEEERNS4_10PropertiesERKNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   36|      2|{
   37|      2|	PropertySetter(obj).setProperties(properties, prefix);
   38|      2|}
_ZN7log4cxx6config14PropertySetter13setPropertiesERNS_7helpers10PropertiesERKNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEE:
   42|      2|{
   43|      2|	size_t len = prefix.length();
   44|       |
   45|      2|	for (auto key : properties.propertyNames())
  ------------------
  |  Branch (45:16): [True: 22, False: 2]
  ------------------
   46|     22|	{
   47|       |		// handle only properties that start with the desired prefix.
   48|     22|		if (key.find(prefix) == 0)
  ------------------
  |  Branch (48:7): [True: 3, False: 19]
  ------------------
   49|      3|		{
   50|       |			// ignore key if it contains dots after the prefix
   51|      3|			if (key.find(0x2E /* '.' */, len + 1) != LogString::npos)
  ------------------
  |  Branch (51:8): [True: 1, False: 2]
  ------------------
   52|      1|			{
   53|      1|				continue;
   54|      1|			}
   55|       |
   56|      2|			LogString value = OptionConverter::findAndSubst(key, properties);
   57|      2|			key = key.substr(len);
   58|       |
   59|      2|			if (key == LOG4CXX_STR("layout")
  ------------------
  |  |   51|      4|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (59:8): [True: 1, False: 1]
  ------------------
   60|      1|				&& obj != 0
  ------------------
  |  Branch (60:8): [True: 1, False: 0]
  ------------------
   61|      1|				&& obj->instanceof(Appender::getStaticClass()))
  ------------------
  |  Branch (61:8): [True: 1, False: 0]
  ------------------
   62|      1|			{
   63|      1|				continue;
   64|      1|			}
   65|       |
   66|      1|			setProperty(key, value);
   67|      1|		}
   68|     22|	}
   69|       |
   70|      2|	activate();
   71|      2|}
_ZN7log4cxx6config14PropertySetter11setPropertyERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_:
   74|      1|{
   75|      1|	if (value.empty())
  ------------------
  |  Branch (75:6): [True: 0, False: 1]
  ------------------
   76|      0|	{
   77|      0|		return;
   78|      0|	}
   79|       |
   80|      1|	if (obj != 0 && obj->instanceof(OptionHandler::getStaticClass()))
  ------------------
  |  Branch (80:6): [True: 1, False: 0]
  |  Branch (80:18): [True: 1, False: 0]
  ------------------
   81|      1|	{
   82|      1|		if (LogLog::isDebugEnabled())
  ------------------
  |  Branch (82:7): [True: 0, False: 1]
  ------------------
   83|      0|		{
   84|      0|			LogLog::debug(LOG4CXX_STR("Setting option name=[") +
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
   85|      0|				option + LOG4CXX_STR("], value=[") + value + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
              				option + LOG4CXX_STR("], value=[") + value + LOG4CXX_STR("]"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
   86|      0|		}
   87|      1|		OptionHandlerPtr handler = LOG4CXX_NS::cast<OptionHandler>(obj);
   88|      1|		handler->setOption(option, value);
   89|      1|	}
   90|      1|}
_ZN7log4cxx6config14PropertySetter8activateEv:
   93|      2|{
   94|      2|	if (obj != 0 && obj->instanceof(OptionHandler::getStaticClass()))
  ------------------
  |  Branch (94:6): [True: 2, False: 0]
  |  Branch (94:18): [True: 2, False: 0]
  ------------------
   95|      2|	{
   96|      2|		OptionHandlerPtr handler = LOG4CXX_NS::cast<OptionHandler>(obj);
   97|      2|		handler->activateOptions();
   98|      2|	}
   99|      2|}

_ZN7log4cxx7helpers6ReaderC2Ev:
   28|      1|{
   29|      1|}
_ZN7log4cxx7helpers6ReaderD2Ev:
   32|      1|{
   33|      1|}
_ZN7log4cxx7helpers6Reader4readEv:
   42|      1|{
   43|      1|	Pool p;
   44|      1|	return read(p);
   45|      1|}

_ZN7log4cxx3spi10RootLoggerC1ERKNSt3__110shared_ptrINS_5LevelEEE:
   28|      1|	: Logger(LOG4CXX_STR("root"))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   29|      1|{
   30|      1|	setLevel(level1);
   31|      1|}
_ZNK7log4cxx3spi10RootLogger17getEffectiveLevelEv:
   41|      2|{
   42|      2|	return getLevel();
   43|      2|}
_ZN7log4cxx3spi10RootLogger8setLevelENSt3__110shared_ptrINS_5LevelEEE:
   46|      2|{
   47|      2|	if (level1 == 0)
  ------------------
  |  Branch (47:6): [True: 0, False: 2]
  ------------------
   48|      0|	{
   49|      0|		LogLog::error(LOG4CXX_STR("You have tried to set a null level to root."));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
   50|      0|	}
   51|      2|	else
   52|      2|	{
   53|      2|		Logger::setLevel(level1);
   54|      2|	}
   55|      2|}

_ZN7log4cxx7pattern33ShortFileLocationPatternConverterC1Ev:
   31|      1|    LoggingEventPatternConverter(LOG4CXX_STR("Short File Location"),
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   32|      1|                                 LOG4CXX_STR("shortFile")) {
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   33|      1|}
_ZN7log4cxx7pattern33ShortFileLocationPatternConverter11newInstanceERKNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE:
   36|      1|    const std::vector<LogString> & /* options */ ) {
   37|      1|  return PatternConverterPtr(new ShortFileLocationPatternConverter());
   38|      1|}
_ZNK7log4cxx7pattern33ShortFileLocationPatternConverter6formatERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERNS_7helpers4PoolE:
   40|   234k|void ShortFileLocationPatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const {
   41|   234k|  append(toAppendTo, event->getLocationInformation().getShortFileName());
   42|   234k|}

_ZN7log4cxx7helpers12StringHelper16equalsIgnoreCaseERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPKcSC_:
   32|      7|{
   33|      7|	for (const auto& item : s1)
  ------------------
  |  Branch (33:24): [True: 28, False: 3]
  ------------------
   34|     28|	{
   35|     28|		if (0 == item || // OSS-Fuzz makes strings with embedded NUL characters
  ------------------
  |  Branch (35:7): [True: 0, False: 28]
  ------------------
   36|     28|			(item != *upper && item != *lower))
  ------------------
  |  Branch (36:5): [True: 23, False: 5]
  |  Branch (36:23): [True: 4, False: 19]
  ------------------
   37|      4|		{
   38|      4|			return false;
   39|      4|		}
   40|     24|		++upper;
   41|     24|		++lower;
   42|     24|	}
   43|       |
   44|      3|	return 0 == *upper;
   45|      7|}
_ZN7log4cxx7helpers12StringHelper11toLowerCaseERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   69|    232|{
   70|       |	// Fold ASCII A-Z only. Passing a value not representable as unsigned char
   71|       |	// (or EOF) to std::tolower(int) is undefined behaviour; with signed char,
   72|       |	// any byte > 0x7F sign-extends to a negative int. The previous implementation
   73|       |	// also produced locale-dependent output for the same input, which is wrong
   74|       |	// for the callers (class names, color names, column names — all ASCII).
   75|    232|	LogString d;
   76|    232|	d.reserve(s.size());
   77|    232|	for (auto ch : s)
  ------------------
  |  Branch (77:15): [True: 3.90k, False: 232]
  ------------------
   78|  3.90k|	{
   79|  3.90k|		if (ch >= static_cast<logchar>('A') && ch <= static_cast<logchar>('Z'))
  ------------------
  |  Branch (79:7): [True: 3.89k, False: 9]
  |  Branch (79:42): [True: 674, False: 3.21k]
  ------------------
   80|    674|			d.push_back(static_cast<logchar>(ch + ('a' - 'A')));
   81|  3.22k|		else
   82|  3.22k|			d.push_back(ch);
   83|  3.90k|	}
   84|    232|	return d;
   85|    232|}
_ZN7log4cxx7helpers12StringHelper4trimERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   88|      4|{
   89|      4|	LogString::size_type pos = s.find_first_not_of(' ');
   90|       |
   91|      4|	if (pos == std::string::npos)
  ------------------
  |  Branch (91:6): [True: 0, False: 4]
  ------------------
   92|      0|	{
   93|      0|		return LogString();
   94|      0|	}
   95|       |
   96|      4|	LogString::size_type n = s.find_last_not_of(' ') - pos + 1;
   97|      4|	return s.substr(pos, n);
   98|      4|}
_ZN7log4cxx7helpers12StringHelper8toStringEiRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
  144|   234k|{
  145|       |#if LOG4CXX_LOGCHAR_IS_WCHAR
  146|       |	dst.append(std::to_wstring(n));
  147|       |#elif LOG4CXX_LOGCHAR_IS_UTF8
  148|       |	dst.append(std::to_string(n));
  149|       |#else
  150|       |	Transcoder::decode(std::to_string(n), dst);
  151|       |#endif
  152|   234k|}

_ZN7log4cxx7helpers15StringTokenizerC2ERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_:
   33|      1|	: m_priv(std::make_unique<StringTokenizerPrivate>(str, delim1))
   34|      1|{
   35|      1|}
_ZN7log4cxx7helpers15StringTokenizerD2Ev:
   38|      1|{
   39|      1|}
_ZNK7log4cxx7helpers15StringTokenizer13hasMoreTokensEv:
   42|      3|{
   43|      3|	return (m_priv->pos != LogString::npos
  ------------------
  |  Branch (43:10): [True: 2, False: 1]
  ------------------
   44|      2|			&& m_priv->src.find_first_not_of(m_priv->delim, m_priv->pos) != LogString::npos);
  ------------------
  |  Branch (44:7): [True: 2, False: 0]
  ------------------
   45|      3|}
_ZN7log4cxx7helpers15StringTokenizer9nextTokenEv:
   48|      2|{
   49|      2|	if (m_priv->pos != LogString::npos)
  ------------------
  |  Branch (49:6): [True: 2, False: 0]
  ------------------
   50|      2|	{
   51|      2|		size_t nextPos = m_priv->src.find_first_not_of(m_priv->delim, m_priv->pos);
   52|       |
   53|      2|		if (nextPos != LogString::npos)
  ------------------
  |  Branch (53:7): [True: 2, False: 0]
  ------------------
   54|      2|		{
   55|      2|			m_priv->pos = m_priv->src.find_first_of(m_priv->delim, nextPos);
   56|       |
   57|      2|			if (m_priv->pos == LogString::npos)
  ------------------
  |  Branch (57:8): [True: 1, False: 1]
  ------------------
   58|      1|			{
   59|      1|				return m_priv->src.substr(nextPos);
   60|      1|			}
   61|       |
   62|      1|			return m_priv->src.substr(nextPos, m_priv->pos - nextPos);
   63|      2|		}
   64|      2|	}
   65|       |
   66|      0|	throw NoSuchElementException();
   67|       |#if LOG4CXX_RETURN_AFTER_THROW
   68|       |	return LogString();
   69|       |#endif
   70|      2|}
_ZN7log4cxx7helpers15StringTokenizer22StringTokenizerPrivateC2ERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEESB_:
   25|      1|	StringTokenizerPrivate(const LogString& str, const LogString& delim1) : src(str), delim(delim1), pos(0){}

_ZN7log4cxx7helpers6System11getPropertyERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
   45|      2|{
   46|      2|	if (lkey.empty())
  ------------------
  |  Branch (46:6): [True: 0, False: 2]
  ------------------
   47|      0|	{
   48|      0|		throw IllegalArgumentException(LOG4CXX_STR("key is empty"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
   49|      0|	}
   50|       |
   51|      2|	LogString rv;
   52|       |
   53|      2|	if (lkey == LOG4CXX_STR("java.io.tmpdir"))
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (53:6): [True: 0, False: 2]
  ------------------
   54|      0|	{
   55|      0|		Pool p;
   56|      0|		const char* dir = NULL;
   57|      0|		apr_status_t stat = apr_temp_dir_get(&dir, p.getAPRPool());
   58|       |
   59|      0|		if (stat == APR_SUCCESS)
  ------------------
  |  |  225|      0|#define APR_SUCCESS 0
  ------------------
  |  Branch (59:7): [True: 0, False: 0]
  ------------------
   60|      0|		{
   61|      0|			Transcoder::decode(dir, rv);
   62|      0|		}
   63|       |
   64|      0|		return rv;
   65|      0|	}
   66|       |
   67|      2|	if (lkey == LOG4CXX_STR("user.dir"))
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (67:6): [True: 0, False: 2]
  ------------------
   68|      0|	{
   69|      0|		Pool p;
   70|      0|		char* dir = NULL;
   71|      0|		apr_status_t stat = apr_filepath_get(&dir, APR_FILEPATH_NATIVE,
  ------------------
  |  |  305|      0|#define APR_FILEPATH_NATIVE         0x10
  ------------------
   72|      0|				p.getAPRPool());
   73|       |
   74|      0|		if (stat == APR_SUCCESS)
  ------------------
  |  |  225|      0|#define APR_SUCCESS 0
  ------------------
  |  Branch (74:7): [True: 0, False: 0]
  ------------------
   75|      0|		{
   76|      0|			Transcoder::decode(dir, rv);
   77|      0|		}
   78|       |
   79|      0|		return rv;
   80|      0|	}
   81|       |
   82|      2|#if APR_HAS_USER
   83|       |
   84|      2|	if (lkey == LOG4CXX_STR("user.home") || lkey == LOG4CXX_STR("user.name"))
  ------------------
  |  |   51|      4|		#define LOG4CXX_STR(str) str
  ------------------
              	if (lkey == LOG4CXX_STR("user.home") || lkey == LOG4CXX_STR("user.name"))
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (84:6): [True: 0, False: 2]
  |  Branch (84:42): [True: 0, False: 2]
  ------------------
   85|      0|	{
   86|      0|		Pool pool;
   87|      0|		apr_uid_t userid;
   88|      0|		apr_gid_t groupid;
   89|      0|		apr_pool_t* p = pool.getAPRPool();
   90|      0|		apr_status_t stat = apr_uid_current(&userid, &groupid, p);
   91|       |
   92|      0|		if (stat == APR_SUCCESS)
  ------------------
  |  |  225|      0|#define APR_SUCCESS 0
  ------------------
  |  Branch (92:7): [True: 0, False: 0]
  ------------------
   93|      0|		{
   94|      0|			char* username = NULL;
   95|      0|			stat = apr_uid_name_get(&username, userid, p);
   96|       |
   97|      0|			if (stat == APR_SUCCESS)
  ------------------
  |  |  225|      0|#define APR_SUCCESS 0
  ------------------
  |  Branch (97:8): [True: 0, False: 0]
  ------------------
   98|      0|			{
   99|      0|				if (lkey == LOG4CXX_STR("user.name"))
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  |  Branch (99:9): [True: 0, False: 0]
  ------------------
  100|      0|				{
  101|      0|					Transcoder::decode(username, rv);
  102|      0|				}
  103|      0|				else
  104|      0|				{
  105|      0|					char* dirname = NULL;
  106|      0|					stat = apr_uid_homepath_get(&dirname, username, p);
  107|       |
  108|      0|					if (stat == APR_SUCCESS)
  ------------------
  |  |  225|      0|#define APR_SUCCESS 0
  ------------------
  |  Branch (108:10): [True: 0, False: 0]
  ------------------
  109|      0|					{
  110|      0|						Transcoder::decode(dirname, rv);
  111|      0|					}
  112|      0|				}
  113|      0|			}
  114|      0|		}
  115|       |
  116|      0|		return rv;
  117|      0|	}
  118|       |
  119|      2|#endif
  120|       |
  121|      2|	LOG4CXX_ENCODE_CHAR(key, lkey);
  ------------------
  |  |  238|      2|	std::string var;                      \
  |  |  239|      2|	LOG4CXX_NS::helpers::Transcoder::encode(src, var)
  ------------------
  122|      2|	Pool p;
  123|      2|	char* value = NULL;
  124|      2|	apr_status_t stat = apr_env_get(&value, key.c_str(),
  125|      2|			p.getAPRPool());
  126|       |
  127|      2|	if (stat == APR_SUCCESS)
  ------------------
  |  |  225|      2|#define APR_SUCCESS 0
  ------------------
  |  Branch (127:6): [True: 0, False: 2]
  ------------------
  128|      0|	{
  129|      0|		Transcoder::decode((const char*) value, rv);
  130|      0|	}
  131|       |
  132|      2|	return rv;
  133|      2|}
_ZN7log4cxx7helpers6System28addProgramFilePathComponentsERNS0_10PropertiesE:
  136|      1|{
  137|       |	// Find the executable file name
  138|      1|	static const int bufSize = 4096;
  139|      1|	char buf[bufSize+1] = {0}, pathSepar = '/';
  140|       |#if defined(_WIN32)
  141|       |	if (0 == GetModuleFileName(NULL, buf, bufSize))
  142|       |	{
  143|       |		LogString lsErrorCode;
  144|       |		StringHelper::toString((int)GetLastError(), lsErrorCode);
  145|       |		LogLog::warn(LOG4CXX_STR("GetModuleFileName error ") + lsErrorCode);
  146|       |		return;
  147|       |	}
  148|       |	pathSepar = '\\';
  149|       |#elif defined(__APPLE__)
  150|       |	uint32_t bufCount = bufSize;
  151|       |	if (0 != _NSGetExecutablePath(buf, &bufCount))
  152|       |	{
  153|       |		LogLog::warn(LOG4CXX_STR("_NSGetExecutablePath failed"));
  154|       |		return;
  155|       |	}
  156|       |#elif (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 500) || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L)
  157|       |	int bufCount = 0;
  158|      1|	std::ostringstream exeLink;
  159|      1|	exeLink << "/proc/" << getpid() << "/exe";
  160|      1|	if ((bufCount = readlink(exeLink.str().c_str(), buf, bufSize)) <= 0)
  ------------------
  |  Branch (160:6): [True: 0, False: 1]
  ------------------
  161|      0|	{
  162|      0|		LOG4CXX_DECODE_CHAR(lsExeLink, exeLink.str());
  ------------------
  |  |  251|      0|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      0|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  163|      0|		LogLog::warn(LOG4CXX_STR("Failed to read ") + lsExeLink);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  164|      0|		return;
  165|      0|	}
  166|      1|	if (bufSize < bufCount)
  ------------------
  |  Branch (166:6): [True: 0, False: 1]
  ------------------
  167|      0|		buf[bufSize] = 0;
  168|      1|	else
  169|      1|		buf[bufCount] = 0;
  170|       |#else
  171|       |	LogLog::warn(LOG4CXX_STR("Unable to determine the name of the executable file on this system"));
  172|       |	return;
  173|       |#endif
  174|       |
  175|       |	// Add the path to the properties
  176|      1|	std::string programFileName(buf);
  177|      1|	if (programFileName.empty())
  ------------------
  |  Branch (177:6): [True: 0, False: 1]
  ------------------
  178|      0|	{
  179|      0|		LogLog::warn(LOG4CXX_STR("Current executable's file name is empty"));
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  180|      0|		return;
  181|      0|	}
  182|       |		
  183|      1|	LOG4CXX_DECODE_CHAR(lsProgramFileName, programFileName);
  ------------------
  |  |  251|      1|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      1|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  184|      1|	LogString prefix{ LOG4CXX_STR("PROGRAM_FILE_PATH") };
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  185|      1|	props.setProperty(prefix, lsProgramFileName);
  186|       |
  187|      1|#if LOG4CXX_HAS_FILESYSTEM_PATH
  188|       |	// Add the path components to the properties
  189|      1|	prefix += '.';
  190|      1|	FilesystemPath programPath(programFileName);
  191|       |#if LOG4CXX_LOGCHAR_IS_WCHAR
  192|       |	auto root_name = programPath.root_name().wstring();
  193|       |	if (!root_name.empty())
  194|       |		props.setProperty(prefix + LOG4CXX_STR("ROOT_NAME"), root_name);
  195|       |	auto root_directory = programPath.root_directory().wstring();
  196|       |	props.setProperty(prefix + LOG4CXX_STR("ROOT_DIRECTORY"),root_directory);
  197|       |	auto root_path = programPath.root_path().wstring();
  198|       |	props.setProperty(prefix + LOG4CXX_STR("ROOT_PATH"), root_path);
  199|       |	auto relative_path = programPath.relative_path().wstring();
  200|       |	props.setProperty(prefix + LOG4CXX_STR("RELATIVE_PATH"), relative_path);
  201|       |	auto parent_path = programPath.parent_path().wstring();
  202|       |	props.setProperty(prefix + LOG4CXX_STR("PARENT_PATH"), parent_path);
  203|       |	auto filename = programPath.filename().wstring();
  204|       |	props.setProperty(prefix + LOG4CXX_STR("FILENAME"), filename);
  205|       |	auto stem = programPath.stem().wstring();
  206|       |	props.setProperty(prefix + LOG4CXX_STR("STEM"), stem);
  207|       |	auto extension = programPath.extension().wstring();
  208|       |	if (!extension.empty())
  209|       |		props.setProperty(prefix + LOG4CXX_STR("EXTENSION"), extension);
  210|       |#else
  211|      1|	LOG4CXX_DECODE_CHAR(root_name, programPath.root_name().string());
  ------------------
  |  |  251|      1|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      1|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  212|      1|	if (!root_name.empty())
  ------------------
  |  Branch (212:6): [True: 0, False: 1]
  ------------------
  213|      0|		props.setProperty(prefix + LOG4CXX_STR("ROOT_NAME"), root_name);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  214|      1|	LOG4CXX_DECODE_CHAR(root_directory, programPath.root_directory().string());
  ------------------
  |  |  251|      1|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      1|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  215|      1|	props.setProperty(prefix + LOG4CXX_STR("ROOT_DIRECTORY"),root_directory);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  216|      1|	LOG4CXX_DECODE_CHAR(root_path, programPath.root_path().string());
  ------------------
  |  |  251|      1|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      1|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  217|      1|	props.setProperty(prefix + LOG4CXX_STR("ROOT_PATH"), root_path);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  218|      1|	LOG4CXX_DECODE_CHAR(relative_path, programPath.relative_path().string());
  ------------------
  |  |  251|      1|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      1|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  219|      1|	props.setProperty(prefix + LOG4CXX_STR("RELATIVE_PATH"), relative_path);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  220|      1|	LOG4CXX_DECODE_CHAR(parent_path, programPath.parent_path().string());
  ------------------
  |  |  251|      1|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      1|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  221|      1|	props.setProperty(prefix + LOG4CXX_STR("PARENT_PATH"), parent_path);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  222|      1|	LOG4CXX_DECODE_CHAR(filename, programPath.filename().string());
  ------------------
  |  |  251|      1|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      1|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  223|      1|	props.setProperty(prefix + LOG4CXX_STR("FILENAME"), filename);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  224|      1|	LOG4CXX_DECODE_CHAR(stem, programPath.stem().string());
  ------------------
  |  |  251|      1|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      1|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  225|      1|	props.setProperty(prefix + LOG4CXX_STR("STEM"), stem);
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
  226|      1|	LOG4CXX_DECODE_CHAR(extension, programPath.extension().string());
  ------------------
  |  |  251|      1|	LOG4CXX_NS::LogString var;                      \
  |  |  252|      1|	LOG4CXX_NS::helpers::Transcoder::decode(src, var)
  ------------------
  227|      1|	if (!extension.empty())
  ------------------
  |  Branch (227:6): [True: 0, False: 1]
  ------------------
  228|      0|		props.setProperty(prefix + LOG4CXX_STR("EXTENSION"), extension);
  ------------------
  |  |   51|      0|		#define LOG4CXX_STR(str) str
  ------------------
  229|      1|#endif
  230|      1|#endif // LOG4CXX_HAS_FILESYSTEM_PATH
  231|      1|}

_ZN7log4cxx7pattern22ThreadPatternConverterC1Ev:
   31|      1|	LoggingEventPatternConverter(LOG4CXX_STR("Thread"),
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   32|      1|		LOG4CXX_STR("Thread"))
  ------------------
  |  |   51|      1|		#define LOG4CXX_STR(str) str
  ------------------
   33|      1|{
   34|      1|}
_ZN7log4cxx7pattern22ThreadPatternConverter11newInstanceERKNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE:
   38|      1|{
   39|      1|	return std::make_shared<ThreadPatternConverter>();
   40|      1|}
_ZNK7log4cxx7pattern22ThreadPatternConverter6formatERKNSt3__110shared_ptrINS_3spi12LoggingEventEEERNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERNS_7helpers4PoolE:
   43|   234k|{
   44|   234k|	toAppendTo.append(event->getThreadName());
   45|   234k|}

_ZN7log4cxx7helpers18ThreadSpecificData25ThreadSpecificDataPrivate15setThreadIdNameEv:
  111|      1|{
  112|      1|#if LOG4CXX_HAS_PTHREAD_SELF && !(defined(_WIN32) && defined(_LIBCPP_VERSION))
  113|       |	// pthread_t encoded in HEX takes needs as many characters
  114|       |	// as two times the size of the type, plus an additional null byte.
  115|      1|	auto threadId = pthread_self();
  116|      1|	char result[sizeof(pthread_t) * 3 + 10];
  117|      1|	apr_snprintf(result, sizeof(result), LOG4CXX_APR_THREAD_FMTSPEC, (void*) &threadId);
  118|      1|	this->pNamePair->idString = Transcoder::decode(result);
  119|       |#elif defined(_WIN32)
  120|       |	char result[20];
  121|       |	apr_snprintf(result, sizeof(result), LOG4CXX_WIN32_THREAD_FMTSPEC, GetCurrentThreadId());
  122|       |	this->pNamePair->idString = Transcoder::decode(result);
  123|       |#else
  124|       |	std::stringstream ss;
  125|       |	ss << std::hex << "0x" << std::this_thread::get_id();
  126|       |	this->pNamePair->idString = Transcoder::decode(ss.str().c_str());
  127|       |#endif
  128|      1|}
_ZN7log4cxx7helpers18ThreadSpecificData25ThreadSpecificDataPrivate17setThreadUserNameEv:
  136|      1|{
  137|      1|#if LOG4CXX_HAS_PTHREAD_GETNAME && !(defined(_WIN32) && defined(_LIBCPP_VERSION))
  138|      1|	char result[16];
  139|      1|	pthread_t current_thread = pthread_self();
  140|      1|	if (pthread_getname_np(current_thread, result, sizeof(result)) < 0 || 0 == result[0])
  ------------------
  |  Branch (140:6): [True: 0, False: 1]
  |  Branch (140:72): [True: 0, False: 1]
  ------------------
  141|      0|		this->pNamePair->threadName = this->pNamePair->idString;
  142|      1|	else
  143|      1|		this->pNamePair->threadName = Transcoder::decode(result);
  144|       |#elif defined(_WIN32)
  145|       |	typedef HRESULT (WINAPI *TGetThreadDescription)(HANDLE, PWSTR*);
  146|       |	static struct initialiser
  147|       |	{
  148|       |		HMODULE hKernelBase;
  149|       |		TGetThreadDescription GetThreadDescription;
  150|       |		initialiser()
  151|       |			: hKernelBase(GetModuleHandleA("KernelBase.dll"))
  152|       |			, GetThreadDescription(nullptr)
  153|       |		{
  154|       |			if (hKernelBase)
  155|       |				GetThreadDescription = reinterpret_cast<TGetThreadDescription>(GetProcAddress(hKernelBase, "GetThreadDescription"));
  156|       |		}
  157|       |	} win32func;
  158|       |	if (win32func.GetThreadDescription)
  159|       |	{
  160|       |		PWSTR result = 0;
  161|       |		HRESULT hr = win32func.GetThreadDescription(GetCurrentThread(), &result);
  162|       |		if (SUCCEEDED(hr) && result)
  163|       |		{
  164|       |			std::wstring wresult = result;
  165|       |			LOG4CXX_DECODE_WCHAR(decoded, wresult);
  166|       |			LocalFree(result);
  167|       |			this->pNamePair->threadName = decoded;
  168|       |		}
  169|       |	}
  170|       |	if (this->pNamePair->threadName.empty())
  171|       |		this->pNamePair->threadName = this->pNamePair->idString;
  172|       |#else
  173|       |	this->pNamePair->threadName = this->pNamePair->idString;
  174|       |#endif
  175|      1|}
_ZN7log4cxx7helpers18ThreadSpecificDataC2Ev:
  178|      1|	: m_priv(std::make_unique<ThreadSpecificDataPrivate>())
  179|      1|{
  180|      1|}
_ZN7log4cxx7helpers18ThreadSpecificDataD2Ev:
  188|      1|{
  189|      1|	m_priv.reset();
  190|      1|}
_ZN7log4cxx7helpers18ThreadSpecificData8getNamesEv:
  203|   234k|{
  204|   234k|	auto p = getCurrentData();
  205|   234k|	return p ? p->m_priv->pNamePair : std::make_shared<NamePair>();
  ------------------
  |  Branch (205:9): [True: 234k, False: 0]
  ------------------
  206|   234k|}
_ZN7log4cxx7helpers18ThreadSpecificData14getCurrentDataEv:
  249|   234k|{
  250|   234k|#if LOG4CXX_HAS_THREAD_LOCAL
  251|   234k|	thread_local ThreadSpecificData data;
  252|   234k|	return data.m_priv ? &data : NULL;
  ------------------
  |  Branch (252:9): [True: 234k, False: 0]
  ------------------
  253|       |#elif APR_HAS_THREADS
  254|       |	void* pData = NULL;
  255|       |	if (APR_SUCCESS == apr_threadkey_private_get(&pData, APRInitializer::getTlsKey())
  256|       |		&& !pData)
  257|       |	{
  258|       |		pData = new ThreadSpecificData();
  259|       |		if (APR_SUCCESS != apr_threadkey_private_set(pData, APRInitializer::getTlsKey()))
  260|       |		{
  261|       |			delete (ThreadSpecificData*)pData;
  262|       |			pData = NULL;
  263|       |		}
  264|       |	}
  265|       |	if (pData)
  266|       |		return (ThreadSpecificData*) pData;
  267|       |#endif
  268|       |
  269|       |#if !LOG4CXX_HAS_THREAD_LOCAL
  270|       |	// Fallback implementation that is not expected to be used
  271|       |	using TaggedData = std::pair<std::thread::id, ThreadSpecificData>;
  272|       |	static std::list<TaggedData> thread_id_map;
  273|       |	static std::mutex mutex;
  274|       |	std::lock_guard<std::mutex> lock(mutex);
  275|       |	auto threadId = std::this_thread::get_id();
  276|       |	auto pThreadId = std::find_if(thread_id_map.begin(), thread_id_map.end()
  277|       |		, [threadId](const TaggedData& item) { return threadId == item.first; });
  278|       |	if (thread_id_map.end() == pThreadId)
  279|       |		pThreadId = thread_id_map.emplace(thread_id_map.begin(), threadId, ThreadSpecificData());
  280|       |	return &pThreadId->second;
  281|       |#endif
  282|   234k|}
_ZN7log4cxx7helpers18ThreadSpecificData25ThreadSpecificDataPrivateC2Ev:
   42|      1|		: pNamePair(std::make_shared<NamePair>())
   43|      1|	{
   44|      1|		setThreadIdName();
   45|      1|		setThreadUserName();
   46|      1|	}

_ZN7log4cxx7helpers10Transcoder10encodeUTF8EjPc:
  109|  1.02k|{
  110|  1.02k|	if (ch < 0x80)
  ------------------
  |  Branch (110:6): [True: 1.02k, False: 0]
  ------------------
  111|  1.02k|	{
  112|  1.02k|		dst[0] = (char) ch;
  113|  1.02k|		return 1;
  114|  1.02k|	}
  115|      0|	else if (ch < 0x800)
  ------------------
  |  Branch (115:11): [True: 0, False: 0]
  ------------------
  116|      0|	{
  117|      0|		dst[0] = (char) (0xC0 + (ch >> 6));
  118|      0|		dst[1] = (char) (0x80 + (ch & 0x3F));
  119|      0|		return 2;
  120|      0|	}
  121|      0|	else if (ch < 0x10000)
  ------------------
  |  Branch (121:11): [True: 0, False: 0]
  ------------------
  122|      0|	{
  123|      0|		dst[0] = (char) (0xE0 + (ch >> 12));
  124|      0|		dst[1] = (char) (0x80 + ((ch >> 6) & 0x3F));
  125|      0|		dst[2] = (char) (0x80 + (ch & 0x3F));
  126|      0|		return 3;
  127|      0|	}
  128|      0|	else if (ch <= 0x10FFFF)
  ------------------
  |  Branch (128:11): [True: 0, False: 0]
  ------------------
  129|      0|	{
  130|      0|		dst[0] = (char) (0xF0 + (ch >> 18));
  131|      0|		dst[1] = (char) (0x80 + ((ch >> 12) & 0x3F));
  132|      0|		dst[2] = (char) (0x80 + ((ch >> 6) & 0x3F));
  133|      0|		dst[3] = (char) (0x80 + (ch & 0x3F));
  134|      0|		return 4;
  135|      0|	}
  136|      0|	else
  137|      0|	{
  138|       |		//
  139|       |		//  output UTF-8 encoding of 0xFFFF
  140|       |		//
  141|      0|		dst[0] = (char) 0xEF;
  142|      0|		dst[1] = (char) 0xBF;
  143|      0|		dst[2] = (char) 0xBF;
  144|      0|		return 3;
  145|      0|	}
  146|  1.02k|}
_ZN7log4cxx7helpers10Transcoder6encodeEjRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
  316|  1.02k|{
  317|  1.02k|	char tmp[8];
  318|  1.02k|	size_t bytes = encodeUTF8(sv, tmp);
  319|  1.02k|	dst.append(tmp, bytes);
  320|  1.02k|}
_ZN7log4cxx7helpers10Transcoder6decodeERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERS8_:
  324|   234k|{
  325|   234k|#if LOG4CXX_CHARSET_UTF8 && LOG4CXX_LOGCHAR_IS_UTF8
  326|   234k|	dst.append(src);
  327|       |#else
  328|       |	static CharsetDecoderPtr decoder(CharsetDecoder::getDefaultDecoder());
  329|       |	dst.reserve(dst.size() + src.size());
  330|       |	std::string::const_iterator iter = src.begin();
  331|       |#if !LOG4CXX_CHARSET_EBCDIC
  332|       |
  333|       |	for (;
  334|       |		iter != src.end() && ((unsigned char) *iter) < 0x80;
  335|       |		iter++)
  336|       |	{
  337|       |		dst.append(1, *iter);
  338|       |	}
  339|       |
  340|       |#endif
  341|       |
  342|       |	if (iter != src.end())
  343|       |	{
  344|       |		size_t offset = iter - src.begin();
  345|       |		ByteBuffer buf(const_cast<char*>(src.data() + offset), src.size() - offset);
  346|       |
  347|       |		while (buf.remaining() > 0)
  348|       |		{
  349|       |			log4cxx_status_t stat = decoder->decode(buf, dst);
  350|       |
  351|       |			if (CharsetDecoder::isError(stat))
  352|       |			{
  353|       |				dst.append(1, LOSSCHAR);
  354|       |				buf.increment_position(1);
  355|       |			}
  356|       |		}
  357|       |
  358|       |		decoder->decode(buf, dst);
  359|       |	}
  360|       |
  361|       |#endif
  362|   234k|}
_ZN7log4cxx7helpers10Transcoder6encodeERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERS8_:
  379|      4|{
  380|      4|#if LOG4CXX_CHARSET_UTF8 && LOG4CXX_LOGCHAR_IS_UTF8
  381|      4|	dst.append(src);
  382|       |#else
  383|       |	static CharsetEncoderPtr encoder(CharsetEncoder::getDefaultEncoder());
  384|       |	dst.reserve(dst.size() + src.size());
  385|       |	LogString::const_iterator iter = src.begin();
  386|       |#if !LOG4CXX_CHARSET_EBCDIC
  387|       |
  388|       |	for (;
  389|       |		iter != src.end() && ((unsigned int) *iter) < 0x80;
  390|       |		iter++)
  391|       |	{
  392|       |		dst.append(1, static_cast<char>(*iter));
  393|       |	}
  394|       |
  395|       |#endif
  396|       |
  397|       |	if (iter != src.end())
  398|       |	{
  399|       |		char buf[BUFSIZE];
  400|       |		ByteBuffer out(buf, BUFSIZE);
  401|       |
  402|       |		while (iter != src.end())
  403|       |		{
  404|       |			log4cxx_status_t stat = encoder->encode(src, iter, out);
  405|       |			out.flip();
  406|       |			dst.append(out.data(), out.limit());
  407|       |			out.clear();
  408|       |
  409|       |			if (CharsetEncoder::isError(stat))
  410|       |			{
  411|       |				dst.append(1, LOSSCHAR);
  412|       |				iter++;
  413|       |			}
  414|       |		}
  415|       |
  416|       |		encoder->encode(src, iter, out);
  417|       |	}
  418|       |
  419|       |#endif
  420|      4|}
_ZN7log4cxx7helpers10Transcoder6decodeEPKc:
  683|      2|{
  684|      2|#if LOG4CXX_LOGCHAR_IS_UTF8 && !LOG4CXX_CHARSET_EBCDIC
  685|      2|	return val;
  686|       |#else
  687|       |	LogString dst;
  688|       |	Transcoder::decode(val, dst);
  689|       |	return dst;
  690|       |#endif
  691|      2|}

_ZN7log4cxx8AppenderD2Ev:
   59|      1|		virtual ~Appender() {}

_ZNK7log4cxx16AppenderSkeleton4castERKNS_7helpers5ClassE:
   70|      8|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      8|	{\
  |  |  145|      8|		const void * object = 0;\
  |  |  146|      8|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 8]
  |  |  ------------------
  ------------------
   71|      8|		LOG4CXX_CAST_ENTRY(AppenderSkeleton)
  ------------------
  |  |  155|      8|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 8]
  |  |  ------------------
  ------------------
   72|      8|		LOG4CXX_CAST_ENTRY(Appender)
  ------------------
  |  |  155|      8|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 3, False: 5]
  |  |  ------------------
  ------------------
   73|      5|		LOG4CXX_CAST_ENTRY(spi::OptionHandler)
  ------------------
  |  |  155|      5|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 3, False: 2]
  |  |  ------------------
  ------------------
   74|      2|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      2|	return object;\
  |  |  150|      5|	}\
  ------------------

_ZN7log4cxx7helpers14APRInitializer14getOrAddUniqueINS_3spi18RepositorySelectorEEENSt3__110shared_ptrIT_EENS5_8functionIFNS6_INS0_6ObjectEEEvEEE:
   74|    289|		{
   75|    289|			return cast<T>(getInstance().findOrAddObject(typeid(T).hash_code(), creator));
   76|    289|		}
configurator.cpp:_ZN7log4cxx7helpers14APRInitializer14getOrAddUniqueINS0_15SingletonHolderINSt3__14pairIN12_GLOBAL__N_115ConfiguratorTagENS0_10PropertiesEEEEEEENS4_10shared_ptrIT_EENS4_8functionIFNSB_INS0_6ObjectEEEvEEE:
   74|      1|		{
   75|      1|			return cast<T>(getInstance().findOrAddObject(typeid(T).hash_code(), creator));
   76|      1|		}

_ZN7log4cxx6fuzzer16EncodingAppender14getStaticClassEv:
   64|     10|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|     10|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|     10|		return theClass;                                       \
   67|     10|	}                                                                      \
_ZN7log4cxx6fuzzer16EncodingAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers6ObjectD2Ev:
  104|   234k|		virtual ~Object() {}
_ZNK7log4cxx6fuzzer16EncodingAppender10instanceofERKNS_7helpers5ClassE:
  152|      4|	{ return cast(clazz) != 0; }
_ZNK7log4cxx6fuzzer16EncodingAppender21ClazzEncodingAppender11newInstanceEv:
   48|      1|			{\
   49|      1|				return new object();\
   50|      1|			}\
_ZNK7log4cxx6fuzzer16EncodingAppender21ClazzEncodingAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers6Object11ClazzObject7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi13OptionHandler18ClazzOptionHandler7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx8Appender13ClazzAppender7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi18AppenderAttachable23ClazzAppenderAttachable7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx6Logger11ClazzLogger7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi13LoggerFactory18ClazzLoggerFactory7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi16LoggerRepository21ClazzLoggerRepository7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers11InputStream16ClazzInputStream7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi12Configurator17ClazzConfigurator7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx20PropertyConfigurator25ClazzPropertyConfigurator7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi12LoggingEvent17ClazzLoggingEvent7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx6Layout11ClazzLayout7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi12ErrorHandler17ClazzErrorHandler7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi6Filter11ClazzFilter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx16AppenderSkeleton21ClazzAppenderSkeleton7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx8Appender14getStaticClassEv:
   64|     13|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|     13|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|     13|		return theClass;                                       \
   67|     13|	}                                                                      \
_ZN7log4cxx8Appender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx16AppenderSkeleton14getStaticClassEv:
   64|     10|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|     10|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|     10|		return theClass;                                       \
   67|     10|	}                                                                      \
_ZN7log4cxx16AppenderSkeleton13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx7helpers20OnlyOnceErrorHandler25ClazzOnlyOnceErrorHandler7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers22AppenderAttachableImpl27ClazzAppenderAttachableImpl7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx13AsyncAppender18ClazzAsyncAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers12OutputStream17ClazzOutputStream7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers6Writer11ClazzWriter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers14CharsetEncoder19ClazzCharsetEncoder7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers18OutputStreamWriter23ClazzOutputStreamWriter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx14WriterAppender19ClazzWriterAppender7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx15ConsoleAppender20ClazzConsoleAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx12FileAppender17ClazzFileAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx2db12ODBCAppender17ClazzODBCAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi24TriggeringEventEvaluator29ClazzTriggeringEventEvaluator7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3net12SMTPAppender17ClazzSMTPAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers11InetAddress16ClazzInetAddress7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers14DatagramPacket19ClazzDatagramPacket7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers14DatagramSocket19ClazzDatagramSocket7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3net14SyslogAppender19ClazzSyslogAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers6Socket11ClazzSocket7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3net14TelnetAppender19ClazzTelnetAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3net17XMLSocketAppender22ClazzXMLSocketAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern14FormattingInfo19ClazzFormattingInfo7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern16PatternConverter21ClazzPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern28LoggingEventPatternConverter33ClazzLoggingEventPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx13PatternLayout18ClazzPatternLayout7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx13PatternLayout18ClazzPatternLayout11newInstanceEv:
   48|      1|			{\
   49|      1|				return new object();\
   50|      1|			}\
_ZNK7log4cxx13PatternLayout10instanceofERKNS_7helpers5ClassE:
  152|      3|	{ return cast(clazz) != 0; }
_ZNK7log4cxx7helpers8TimeZone13ClazzTimeZone7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers10DateFormat15ClazzDateFormat7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx10JSONLayout15ClazzJSONLayout7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx10HTMLLayout15ClazzHTMLLayout7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx12SimpleLayout17ClazzSimpleLayout7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3xml9XMLLayout14ClazzXMLLayout7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx6filter16LevelMatchFilter21ClazzLevelMatchFilter7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx6filter16LevelRangeFilter21ClazzLevelRangeFilter7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx6filter17StringMatchFilter22ClazzStringMatchFilter7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx6filter18LocationInfoFilter23ClazzLocationInfoFilter7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling16TriggeringPolicy21ClazzTriggeringPolicy7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling27FilterBasedTriggeringPolicy32ClazzFilterBasedTriggeringPolicy7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3spi18RepositorySelector23ClazzRepositorySelector7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling6Action11ClazzAction7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling19RolloverDescription24ClazzRolloverDescription7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling13RollingPolicy18ClazzRollingPolicy7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling17RollingPolicyBase22ClazzRollingPolicyBase7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling24FixedWindowRollingPolicy29ClazzFixedWindowRollingPolicy7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling22ManualTriggeringPolicy27ClazzManualTriggeringPolicy7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling19RollingFileAppender24ClazzRollingFileAppender7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling25SizeBasedTriggeringPolicy30ClazzSizeBasedTriggeringPolicy7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling22TimeBasedRollingPolicy27ClazzTimeBasedRollingPolicy7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers14CharsetDecoder19ClazzCharsetDecoder7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx3xml15DOMConfigurator20ClazzDOMConfigurator7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx5varia20FallbackErrorHandler25ClazzFallbackErrorHandler7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx15ConsoleAppender14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx15ConsoleAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx7helpers15SystemOutWriter20ClazzSystemOutWriter7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers15SystemErrWriter20ClazzSystemErrWriter7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx5varia20FallbackErrorHandler14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx5varia20FallbackErrorHandler13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx9Hierarchy14ClazzHierarchy7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx12FileAppender14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx12FileAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx7helpers16FileOutputStream21ClazzFileOutputStream7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers14BufferedWriter19ClazzBufferedWriter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx7helpers16FileOutputStream14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers16FileOutputStream13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling27FilterBasedTriggeringPolicy14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling27FilterBasedTriggeringPolicy13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling24FixedWindowRollingPolicy14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling24FixedWindowRollingPolicy13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx7helpers7Integer12ClazzInteger7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling16FileRenameAction21ClazzFileRenameAction7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling16GZCompressAction21ClazzGZCompressAction7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7rolling17ZipCompressAction22ClazzZipCompressAction7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern23IntegerPatternConverter28ClazzIntegerPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx7rolling16GZCompressAction14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling16GZCompressAction13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx10HTMLLayout14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx10HTMLLayout13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx7helpers4Date9ClazzDate7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx7helpers7Integer14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers7Integer13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern23IntegerPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern23IntegerPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx10JSONLayout14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx10JSONLayout13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx6Layout14getStaticClassEv:
   64|     10|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|     10|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|     10|		return theClass;                                       \
   67|     10|	}                                                                      \
_ZN7log4cxx6Layout13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx5Level14getStaticClassEv:
   79|      2|	const LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   80|      2|		static LOG4CXX_NS::helpers::WideLife<class> theClass; \
   81|      2|		return theClass;                                       \
   82|      2|	}                                                         \
_ZN7log4cxx5Level13registerClassEv:
   83|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   84|      2|		static LOG4CXX_NS::helpers::WideLife<LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   85|      2|		return classReg; \
   86|      2|	}\
_ZN7log4cxx6filter16LevelMatchFilter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx6filter16LevelMatchFilter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx6filter16LevelRangeFilter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx6filter16LevelRangeFilter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers6Object14getStaticClassEv:
   64|    341|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|    341|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|    341|		return theClass;                                       \
   67|    341|	}                                                                      \
_ZN7log4cxx7helpers6Object13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi13OptionHandler14getStaticClassEv:
   64|     18|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|     18|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|     18|		return theClass;                                       \
   67|     18|	}                                                                      \
_ZN7log4cxx3spi13OptionHandler13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi12ErrorHandler14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3spi12ErrorHandler13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi6Filter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3spi6Filter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi18AppenderAttachable14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3spi18AppenderAttachable13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi13LoggerFactory14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3spi13LoggerFactory13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi16LoggerRepository14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3spi16LoggerRepository13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx6filter13DenyAllFilter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx6filter13DenyAllFilter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi18RepositorySelector14getStaticClassEv:
   64|    580|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|    580|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|    580|		return theClass;                                       \
   67|    580|	}                                                                      \
_ZN7log4cxx3spi18RepositorySelector13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers10XMLDOMNode14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers10XMLDOMNode13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers14XMLDOMDocument14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers14XMLDOMDocument13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers13XMLDOMElement14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers13XMLDOMElement13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers14XMLDOMNodeList14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers14XMLDOMNodeList13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi24TriggeringEventEvaluator14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3spi24TriggeringEventEvaluator13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx6filter13DenyAllFilter18ClazzDenyAllFilter7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers10XMLDOMNode15ClazzXMLDOMNode7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers14XMLDOMDocument19ClazzXMLDOMDocument7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers13XMLDOMElement18ClazzXMLDOMElement7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers14XMLDOMNodeList19ClazzXMLDOMNodeList7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers15FileInputStream20ClazzFileInputStream7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx6filter18LocationInfoFilter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx6filter18LocationInfoFilter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx6Logger14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx6Logger13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi12LoggingEvent14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3spi12LoggingEvent13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi25DefaultRepositorySelector14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3spi25DefaultRepositorySelector13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx3spi25DefaultRepositorySelector30ClazzDefaultRepositorySelector7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx4castINS_3spi18RepositorySelectorENS_7helpers6ObjectELb0ELb1EEENSt3__110shared_ptrIT_EERKNS6_IT0_EE:
  124|    289|{
  125|    289|	if(!incoming)
  ------------------
  |  Branch (125:5): [True: 0, False: 289]
  ------------------
  126|      0|	{
  127|      0|		return std::shared_ptr<Ret>();
  128|      0|	}
  129|       |
  130|    289|	Ret* casted = reinterpret_cast<Ret*>(const_cast<void*>(incoming->cast(Ret::getStaticClass())));
  131|       |
  132|    289|	if ( casted )
  ------------------
  |  Branch (132:7): [True: 289, False: 0]
  ------------------
  133|    289|	{
  134|    289|		return std::shared_ptr<Ret>( incoming, casted );
  135|    289|	}
  136|       |
  137|      0|	return std::shared_ptr<Ret>();
  138|    289|}
_ZN7log4cxx7rolling22ManualTriggeringPolicy14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling22ManualTriggeringPolicy13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx2db12ODBCAppender14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx2db12ODBCAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx7pattern19MDCPatternConverter24ClazzMDCPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern15NameAbbreviator20ClazzNameAbbreviator7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern20NamePatternConverter25ClazzNamePatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern22LoggerPatternConverter27ClazzLoggerPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern25ClassNamePatternConverter30ClazzClassNamePatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern20DatePatternConverter25ClazzDatePatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern28FileLocationPatternConverter33ClazzFileLocationPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern28FullLocationPatternConverter33ClazzFullLocationPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern33ShortFileLocationPatternConverter38ClazzShortFileLocationPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern28LineLocationPatternConverter33ClazzLineLocationPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern23MessagePatternConverter28ClazzMessagePatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern30MethodLocationPatternConverter35ClazzMethodLocationPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern21LevelPatternConverter26ClazzLevelPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern22ThreadPatternConverter27ClazzThreadPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern30ThreadUsernamePatternConverter35ClazzThreadUsernamePatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern19NDCPatternConverter24ClazzNDCPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx7helpers20OnlyOnceErrorHandler14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers20OnlyOnceErrorHandler13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers12OutputStream14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers12OutputStream13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern16PatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern16PatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx13PatternLayout14getStaticClassEv:
   64|      8|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      8|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      8|		return theClass;                                       \
   67|      8|	}                                                                      \
_ZN7log4cxx13PatternLayout13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx4castINS_7pattern28LoggingEventPatternConverterENS1_16PatternConverterELb0ELb0EEENSt3__110shared_ptrIT_EERKNS5_IT0_EE:
  124|     10|{
  125|     10|	if(!incoming)
  ------------------
  |  Branch (125:5): [True: 0, False: 10]
  ------------------
  126|      0|	{
  127|      0|		return std::shared_ptr<Ret>();
  128|      0|	}
  129|       |
  130|     10|	Ret* casted = reinterpret_cast<Ret*>(const_cast<void*>(incoming->cast(Ret::getStaticClass())));
  131|       |
  132|     10|	if ( casted )
  ------------------
  |  Branch (132:7): [True: 10, False: 0]
  ------------------
  133|     10|	{
  134|     10|		return std::shared_ptr<Ret>( incoming, casted );
  135|     10|	}
  136|       |
  137|      0|	return std::shared_ptr<Ret>();
  138|     10|}
_ZNK7log4cxx7pattern24ColorEndPatternConverter29ClazzColorEndPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern26ColorStartPatternConverter31ClazzColorStartPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern23LiteralPatternConverter28ClazzLiteralPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern29LineSeparatorPatternConverter34ClazzLineSeparatorPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern28RelativeTimePatternConverter33ClazzRelativeTimePatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern26PropertiesPatternConverter31ClazzPropertiesPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern36ThrowableInformationPatternConverter41ClazzThrowableInformationPatternConverter7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers6Reader11ClazzReader7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7helpers17InputStreamReader22ClazzInputStreamReader7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx7pattern26PropertiesPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern26PropertiesPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx20PropertyConfigurator14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx20PropertyConfigurator13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx4castINS_13AsyncAppenderENS_8AppenderELb0ELb0EEENSt3__110shared_ptrIT_EERKNS4_IT0_EE:
  124|      1|{
  125|      1|	if(!incoming)
  ------------------
  |  Branch (125:5): [True: 0, False: 1]
  ------------------
  126|      0|	{
  127|      0|		return std::shared_ptr<Ret>();
  128|      0|	}
  129|       |
  130|      1|	Ret* casted = reinterpret_cast<Ret*>(const_cast<void*>(incoming->cast(Ret::getStaticClass())));
  131|       |
  132|      1|	if ( casted )
  ------------------
  |  Branch (132:7): [True: 0, False: 1]
  ------------------
  133|      0|	{
  134|      0|		return std::shared_ptr<Ret>( incoming, casted );
  135|      0|	}
  136|       |
  137|      1|	return std::shared_ptr<Ret>();
  138|      1|}
_ZN7log4cxx4castINS_8AppenderENS_7helpers6ObjectELb0ELb1EEENSt3__110shared_ptrIT_EERKNS5_IT0_EE:
  124|      1|{
  125|      1|	if(!incoming)
  ------------------
  |  Branch (125:5): [True: 0, False: 1]
  ------------------
  126|      0|	{
  127|      0|		return std::shared_ptr<Ret>();
  128|      0|	}
  129|       |
  130|      1|	Ret* casted = reinterpret_cast<Ret*>(const_cast<void*>(incoming->cast(Ret::getStaticClass())));
  131|       |
  132|      1|	if ( casted )
  ------------------
  |  Branch (132:7): [True: 1, False: 0]
  ------------------
  133|      1|	{
  134|      1|		return std::shared_ptr<Ret>( incoming, casted );
  135|      1|	}
  136|       |
  137|      0|	return std::shared_ptr<Ret>();
  138|      1|}
_ZN7log4cxx4castINS_6LayoutENS_7helpers6ObjectELb0ELb1EEENSt3__110shared_ptrIT_EERKNS5_IT0_EE:
  124|      1|{
  125|      1|	if(!incoming)
  ------------------
  |  Branch (125:5): [True: 0, False: 1]
  ------------------
  126|      0|	{
  127|      0|		return std::shared_ptr<Ret>();
  128|      0|	}
  129|       |
  130|      1|	Ret* casted = reinterpret_cast<Ret*>(const_cast<void*>(incoming->cast(Ret::getStaticClass())));
  131|       |
  132|      1|	if ( casted )
  ------------------
  |  Branch (132:7): [True: 1, False: 0]
  ------------------
  133|      1|	{
  134|      1|		return std::shared_ptr<Ret>( incoming, casted );
  135|      1|	}
  136|       |
  137|      0|	return std::shared_ptr<Ret>();
  138|      1|}
_ZN7log4cxx4castINS_7rolling19RollingFileAppenderENS_8AppenderELb0ELb0EEENSt3__110shared_ptrIT_EERKNS5_IT0_EE:
  124|      1|{
  125|      1|	if(!incoming)
  ------------------
  |  Branch (125:5): [True: 0, False: 1]
  ------------------
  126|      0|	{
  127|      0|		return std::shared_ptr<Ret>();
  128|      0|	}
  129|       |
  130|      1|	Ret* casted = reinterpret_cast<Ret*>(const_cast<void*>(incoming->cast(Ret::getStaticClass())));
  131|       |
  132|      1|	if ( casted )
  ------------------
  |  Branch (132:7): [True: 0, False: 1]
  ------------------
  133|      0|	{
  134|      0|		return std::shared_ptr<Ret>( incoming, casted );
  135|      0|	}
  136|       |
  137|      1|	return std::shared_ptr<Ret>();
  138|      1|}
_ZNK7log4cxx20DefaultLoggerFactory25ClazzDefaultLoggerFactory7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx4castINS_3spi13OptionHandlerENS_7helpers6ObjectELb0ELb1EEENSt3__110shared_ptrIT_EERKNS6_IT0_EE:
  124|      3|{
  125|      3|	if(!incoming)
  ------------------
  |  Branch (125:5): [True: 0, False: 3]
  ------------------
  126|      0|	{
  127|      0|		return std::shared_ptr<Ret>();
  128|      0|	}
  129|       |
  130|      3|	Ret* casted = reinterpret_cast<Ret*>(const_cast<void*>(incoming->cast(Ret::getStaticClass())));
  131|       |
  132|      3|	if ( casted )
  ------------------
  |  Branch (132:7): [True: 3, False: 0]
  ------------------
  133|      3|	{
  134|      3|		return std::shared_ptr<Ret>( incoming, casted );
  135|      3|	}
  136|       |
  137|      0|	return std::shared_ptr<Ret>();
  138|      3|}
_ZN7log4cxx7helpers6Reader14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers6Reader13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern28RelativeTimePatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern28RelativeTimePatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling19RollingFileAppender14getStaticClassEv:
   64|      3|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      3|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      3|		return theClass;                                       \
   67|      3|	}                                                                      \
_ZN7log4cxx7rolling19RollingFileAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling13RollingPolicy14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling13RollingPolicy13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling17RollingPolicyBase14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling17RollingPolicyBase13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling19RolloverDescription14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling19RolloverDescription13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern33ShortFileLocationPatternConverter14getStaticClassEv:
   64|      3|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      3|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      3|		return theClass;                                       \
   67|      3|	}                                                                      \
_ZN7log4cxx7pattern33ShortFileLocationPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx12SimpleLayout14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx12SimpleLayout13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling25SizeBasedTriggeringPolicy14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling25SizeBasedTriggeringPolicy13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3net16DefaultEvaluator14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3net16DefaultEvaluator13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3net12SMTPAppender14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3net12SMTPAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx3net16DefaultEvaluator21ClazzDefaultEvaluator7getNameEv:
   46|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx6filter17StringMatchFilter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx6filter17StringMatchFilter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers15SystemErrWriter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers15SystemErrWriter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers15SystemOutWriter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers15SystemOutWriter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern22ThreadPatternConverter14getStaticClassEv:
   64|      3|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      3|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      3|		return theClass;                                       \
   67|      3|	}                                                                      \
_ZN7log4cxx7pattern22ThreadPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern30ThreadUsernamePatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern30ThreadUsernamePatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern36ThrowableInformationPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern36ThrowableInformationPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling22TimeBasedRollingPolicy14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling22TimeBasedRollingPolicy13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers8TimeZone14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers8TimeZone13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling16TriggeringPolicy14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling16TriggeringPolicy13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers6Writer14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers6Writer13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx14WriterAppender14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx14WriterAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3xml9XMLLayout14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3xml9XMLLayout13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling17ZipCompressAction14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling17ZipCompressAction13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3net14TelnetAppender14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3net14TelnetAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3net17XMLSocketAppender14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3net17XMLSocketAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3net14SyslogAppender14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3net14SyslogAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3xml15DOMConfigurator14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3xml15DOMConfigurator13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling6Action14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling6Action13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers22AppenderAttachableImpl14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers22AppenderAttachableImpl13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx13AsyncAppender14getStaticClassEv:
   64|      3|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      3|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      3|		return theClass;                                       \
   67|      3|	}                                                                      \
_ZN7log4cxx13AsyncAppender13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers14BufferedWriter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers14BufferedWriter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers14CharsetDecoder14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers14CharsetDecoder13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers14CharsetEncoder14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers14CharsetEncoder13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern25ClassNamePatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern25ClassNamePatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern26ColorStartPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern26ColorStartPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern24ColorEndPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern24ColorEndPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx3spi12Configurator14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx3spi12Configurator13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
configurator.cpp:_ZN7log4cxx4castINS_7helpers15SingletonHolderINSt3__14pairIN12_GLOBAL__N_115ConfiguratorTagENS1_10PropertiesEEEEENS1_6ObjectELb0ELb1EEENS3_10shared_ptrIT_EERKNSB_IT0_EE:
  124|      1|{
  125|      1|	if(!incoming)
  ------------------
  |  Branch (125:5): [True: 0, False: 1]
  ------------------
  126|      0|	{
  127|      0|		return std::shared_ptr<Ret>();
  128|      0|	}
  129|       |
  130|      1|	Ret* casted = reinterpret_cast<Ret*>(const_cast<void*>(incoming->cast(Ret::getStaticClass())));
  131|       |
  132|      1|	if ( casted )
  ------------------
  |  Branch (132:7): [True: 1, False: 0]
  ------------------
  133|      1|	{
  134|      1|		return std::shared_ptr<Ret>( incoming, casted );
  135|      1|	}
  136|       |
  137|      0|	return std::shared_ptr<Ret>();
  138|      1|}
_ZN7log4cxx7helpers4Date14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers4Date13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers10DateFormat14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers10DateFormat13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern20DatePatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern20DatePatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx20DefaultLoggerFactory14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx20DefaultLoggerFactory13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers15FileInputStream14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers15FileInputStream13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern28FileLocationPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern28FileLocationPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7rolling16FileRenameAction14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7rolling16FileRenameAction13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern14FormattingInfo14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern14FormattingInfo13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern28FullLocationPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern28FullLocationPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx9Hierarchy14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx9Hierarchy13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers11InetAddress14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers11InetAddress13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers11InputStream14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers11InputStream13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers17InputStreamReader14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers17InputStreamReader13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern21LevelPatternConverter14getStaticClassEv:
   64|      3|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      3|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      3|		return theClass;                                       \
   67|      3|	}                                                                      \
_ZN7log4cxx7pattern21LevelPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern28LineLocationPatternConverter14getStaticClassEv:
   64|      3|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      3|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      3|		return theClass;                                       \
   67|      3|	}                                                                      \
_ZN7log4cxx7pattern28LineLocationPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern29LineSeparatorPatternConverter14getStaticClassEv:
   64|      3|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      3|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      3|		return theClass;                                       \
   67|      3|	}                                                                      \
_ZN7log4cxx7pattern29LineSeparatorPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern23LiteralPatternConverter14getStaticClassEv:
   64|      6|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      6|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      6|		return theClass;                                       \
   67|      6|	}                                                                      \
_ZN7log4cxx7pattern23LiteralPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern22LoggerPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern22LoggerPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern28LoggingEventPatternConverter14getStaticClassEv:
   64|     22|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|     22|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|     22|		return theClass;                                       \
   67|     22|	}                                                                      \
_ZN7log4cxx7pattern28LoggingEventPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern23MessagePatternConverter14getStaticClassEv:
   64|      3|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      3|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      3|		return theClass;                                       \
   67|      3|	}                                                                      \
_ZN7log4cxx7pattern23MessagePatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern30MethodLocationPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern30MethodLocationPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern20NamePatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern20NamePatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern19MDCPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern19MDCPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern19NDCPatternConverter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern19NDCPatternConverter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers18OutputStreamWriter14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers18OutputStreamWriter13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers6Socket14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers6Socket13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx7helpers18SocketOutputStream23ClazzSocketOutputStream7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx7helpers18SocketOutputStream14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers18SocketOutputStream13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern15NameAbbreviator14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern15NameAbbreviator13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern14NOPAbbreviator14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern14NOPAbbreviator13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern21MaxElementAbbreviator14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern21MaxElementAbbreviator13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7pattern18PatternAbbreviator14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7pattern18PatternAbbreviator13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZNK7log4cxx7pattern14NOPAbbreviator19ClazzNOPAbbreviator7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern21MaxElementAbbreviator26ClazzMaxElementAbbreviator7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZNK7log4cxx7pattern18PatternAbbreviator23ClazzPatternAbbreviator7getNameEv:
   32|      2|			LogString getName() const override { return LOG4CXX_STR(#object); }\
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
_ZN7log4cxx7helpers14DatagramPacket14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers14DatagramPacket13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\
_ZN7log4cxx7helpers14DatagramSocket14getStaticClassEv:
   64|      2|	const ::LOG4CXX_NS::helpers::Class& object::getStaticClass() { \
   65|      2|		static ::LOG4CXX_NS::helpers::WideLife<Clazz##object> theClass; \
   66|      2|		return theClass;                                       \
   67|      2|	}                                                                      \
_ZN7log4cxx7helpers14DatagramSocket13registerClassEv:
   68|      2|	const LOG4CXX_NS::helpers::ClassRegistration& object::registerClass() {   \
   69|      2|		static ::LOG4CXX_NS::helpers::WideLife<::LOG4CXX_NS::helpers::ClassRegistration> classReg(object::getStaticClass); \
   70|      2|		return classReg; \
   71|      2|	}\

configurator.cpp:_ZN7log4cxx7helpers15SingletonHolderINSt3__14pairIN12_GLOBAL__N_115ConfiguratorTagENS0_10PropertiesEEEEC2Ev:
   46|      1|	SingletonHolder() {}
configurator.cpp:_ZNK7log4cxx7helpers15SingletonHolderINSt3__14pairIN12_GLOBAL__N_115ConfiguratorTagENS0_10PropertiesEEEE4castERKNS0_5ClassE:
   41|      1|	BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      1|	{\
  |  |  145|      1|		const void * object = 0;\
  |  |  146|      1|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 1, False: 0]
  |  |  ------------------
  ------------------
   42|      0|	LOG4CXX_CAST_ENTRY(ThisType)
  ------------------
  |  |  155|      0|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 0]
  |  |  ------------------
  ------------------
   43|      0|	END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      0|	}\
  ------------------
configurator.cpp:_ZN7log4cxx7helpers15SingletonHolderINSt3__14pairIN12_GLOBAL__N_115ConfiguratorTagENS0_10PropertiesEEEE5valueEv:
   58|      1|	T& value() { return m_data; }

_ZN7log4cxx7helpers8WideLifeINS_6fuzzer16EncodingAppender21ClazzEncodingAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6fuzzer16EncodingAppender21ClazzEncodingAppenderEE5valueEv:
   62|     10|	{
   63|     10|		return *reinterpret_cast<T*>(&storage);
   64|     10|	}
_ZN7log4cxx7helpers8WideLifeINS_6fuzzer16EncodingAppender21ClazzEncodingAppenderEEcvRS4_Ev:
   72|     10|	{
   73|     10|		return value();
   74|     10|	}
_ZN7log4cxx7helpers8WideLifeINS0_17ClassRegistrationEEC2IRFRKNS0_5ClassEvEJEQntsr3stdE7same_asINS1_IT_EETL0__EEEOSA_DpOT0_:
   48|    230|	{		
   49|    230|		new(&storage) T(std::forward<Arg0>(arg0), std::forward<Args>(args)...);
   50|    230|	}
_ZN7log4cxx7helpers8WideLifeINS0_17ClassRegistrationEE5valueEv:
   62|    230|	{
   63|    230|		return *reinterpret_cast<T*>(&storage);
   64|    230|	}
_ZN7log4cxx7helpers8WideLifeINS0_17ClassRegistrationEEcvRS2_Ev:
   72|    230|	{
   73|    230|		return value();
   74|    230|	}
_ZN7log4cxx7helpers8WideLifeINS_8Appender13ClazzAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_8Appender13ClazzAppenderEE5valueEv:
   62|     13|	{
   63|     13|		return *reinterpret_cast<T*>(&storage);
   64|     13|	}
_ZN7log4cxx7helpers8WideLifeINS_8Appender13ClazzAppenderEEcvRS3_Ev:
   72|     13|	{
   73|     13|		return value();
   74|     13|	}
_ZN7log4cxx7helpers8WideLifeINS_16AppenderSkeleton21ClazzAppenderSkeletonEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_16AppenderSkeleton21ClazzAppenderSkeletonEE5valueEv:
   62|     10|	{
   63|     10|		return *reinterpret_cast<T*>(&storage);
   64|     10|	}
_ZN7log4cxx7helpers8WideLifeINS_16AppenderSkeleton21ClazzAppenderSkeletonEEcvRS3_Ev:
   72|     10|	{
   73|     10|		return value();
   74|     10|	}
_ZN7log4cxx7helpers8WideLifeINSt3__13mapINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPKNS0_5ClassENS2_4lessIS9_EENS7_INS2_4pairIKS9_SC_EEEEEEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINSt3__13mapINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPKNS0_5ClassENS2_4lessIS9_EENS7_INS2_4pairIKS9_SC_EEEEEEE5valueEv:
   62|    234|	{
   63|    234|		return *reinterpret_cast<T*>(&storage);
   64|    234|	}
_ZN7log4cxx7helpers8WideLifeINSt3__13mapINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPKNS0_5ClassENS2_4lessIS9_EENS7_INS2_4pairIKS9_SC_EEEEEEEcvRSJ_Ev:
   72|    234|	{
   73|    234|		return value();
   74|    234|	}
_ZN7log4cxx7helpers8WideLifeINS_15ConsoleAppender20ClazzConsoleAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_15ConsoleAppender20ClazzConsoleAppenderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_15ConsoleAppender20ClazzConsoleAppenderEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_5varia20FallbackErrorHandler25ClazzFallbackErrorHandlerEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_5varia20FallbackErrorHandler25ClazzFallbackErrorHandlerEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_5varia20FallbackErrorHandler25ClazzFallbackErrorHandlerEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_12FileAppender17ClazzFileAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_12FileAppender17ClazzFileAppenderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_12FileAppender17ClazzFileAppenderEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_16FileOutputStream21ClazzFileOutputStreamEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_16FileOutputStream21ClazzFileOutputStreamEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_16FileOutputStream21ClazzFileOutputStreamEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling27FilterBasedTriggeringPolicy32ClazzFilterBasedTriggeringPolicyEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling27FilterBasedTriggeringPolicy32ClazzFilterBasedTriggeringPolicyEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling27FilterBasedTriggeringPolicy32ClazzFilterBasedTriggeringPolicyEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling24FixedWindowRollingPolicy29ClazzFixedWindowRollingPolicyEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling24FixedWindowRollingPolicy29ClazzFixedWindowRollingPolicyEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling24FixedWindowRollingPolicy29ClazzFixedWindowRollingPolicyEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling16GZCompressAction21ClazzGZCompressActionEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling16GZCompressAction21ClazzGZCompressActionEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling16GZCompressAction21ClazzGZCompressActionEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_10HTMLLayout15ClazzHTMLLayoutEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_10HTMLLayout15ClazzHTMLLayoutEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_10HTMLLayout15ClazzHTMLLayoutEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_7Integer12ClazzIntegerEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_7Integer12ClazzIntegerEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_7Integer12ClazzIntegerEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern23IntegerPatternConverter28ClazzIntegerPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern23IntegerPatternConverter28ClazzIntegerPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern23IntegerPatternConverter28ClazzIntegerPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_10JSONLayout15ClazzJSONLayoutEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_10JSONLayout15ClazzJSONLayoutEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_10JSONLayout15ClazzJSONLayoutEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6Layout11ClazzLayoutEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6Layout11ClazzLayoutEE5valueEv:
   62|     10|	{
   63|     10|		return *reinterpret_cast<T*>(&storage);
   64|     10|	}
_ZN7log4cxx7helpers8WideLifeINS_6Layout11ClazzLayoutEEcvRS3_Ev:
   72|     10|	{
   73|     10|		return value();
   74|     10|	}
_ZN7log4cxx7helpers8WideLifeINS_5Level10LevelClassEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_5Level10LevelClassEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_5Level10LevelClassEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_5LevelEEEEC2IS5_JEQntsr3stdE7same_asINS1_IT_EETL0__EEEOS8_DpOT0_:
   48|      8|	{		
   49|      8|		new(&storage) T(std::forward<Arg0>(arg0), std::forward<Args>(args)...);
   50|      8|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_5LevelEEEED2Ev:
   53|      8|	{
   54|       |#if LOG4CXX_EVENTS_AT_EXIT
   55|       |		// keep the holded value alive
   56|       |#else
   57|      8|		value().~T();
   58|      8|#endif
   59|      8|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_5LevelEEEE5valueEv:
   62|     21|	{
   63|     21|		return *reinterpret_cast<T*>(&storage);
   64|     21|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_5LevelEEEEcvRS5_Ev:
   72|     13|	{
   73|     13|		return value();
   74|     13|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_5Level4DataEEEEC2IS6_JEQntsr3stdE7same_asINS1_IT_EETL0__EEEOS9_DpOT0_:
   48|      1|	{		
   49|      1|		new(&storage) T(std::forward<Arg0>(arg0), std::forward<Args>(args)...);
   50|      1|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_5Level4DataEEEED2Ev:
   53|      1|	{
   54|       |#if LOG4CXX_EVENTS_AT_EXIT
   55|       |		// keep the holded value alive
   56|       |#else
   57|      1|		value().~T();
   58|      1|#endif
   59|      1|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_5Level4DataEEEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_5Level4DataEEEEcvRS6_Ev:
   72|      1|	{
   73|      1|		return value();
   74|      1|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter16LevelMatchFilter21ClazzLevelMatchFilterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter16LevelMatchFilter21ClazzLevelMatchFilterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter16LevelMatchFilter21ClazzLevelMatchFilterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter16LevelRangeFilter21ClazzLevelRangeFilterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter16LevelRangeFilter21ClazzLevelRangeFilterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter16LevelRangeFilter21ClazzLevelRangeFilterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Object11ClazzObjectEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Object11ClazzObjectEE5valueEv:
   62|    341|	{
   63|    341|		return *reinterpret_cast<T*>(&storage);
   64|    341|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Object11ClazzObjectEEcvRS3_Ev:
   72|    341|	{
   73|    341|		return value();
   74|    341|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi13OptionHandler18ClazzOptionHandlerEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi13OptionHandler18ClazzOptionHandlerEE5valueEv:
   62|     18|	{
   63|     18|		return *reinterpret_cast<T*>(&storage);
   64|     18|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi13OptionHandler18ClazzOptionHandlerEEcvRS4_Ev:
   72|     18|	{
   73|     18|		return value();
   74|     18|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi12ErrorHandler17ClazzErrorHandlerEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi12ErrorHandler17ClazzErrorHandlerEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi12ErrorHandler17ClazzErrorHandlerEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi6Filter11ClazzFilterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi6Filter11ClazzFilterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi6Filter11ClazzFilterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi18AppenderAttachable23ClazzAppenderAttachableEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi18AppenderAttachable23ClazzAppenderAttachableEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi18AppenderAttachable23ClazzAppenderAttachableEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi13LoggerFactory18ClazzLoggerFactoryEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi13LoggerFactory18ClazzLoggerFactoryEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi13LoggerFactory18ClazzLoggerFactoryEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi16LoggerRepository21ClazzLoggerRepositoryEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi16LoggerRepository21ClazzLoggerRepositoryEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi16LoggerRepository21ClazzLoggerRepositoryEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter13DenyAllFilter18ClazzDenyAllFilterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter13DenyAllFilter18ClazzDenyAllFilterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter13DenyAllFilter18ClazzDenyAllFilterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi18RepositorySelector23ClazzRepositorySelectorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi18RepositorySelector23ClazzRepositorySelectorEE5valueEv:
   62|    580|	{
   63|    580|		return *reinterpret_cast<T*>(&storage);
   64|    580|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi18RepositorySelector23ClazzRepositorySelectorEEcvRS4_Ev:
   72|    580|	{
   73|    580|		return value();
   74|    580|	}
_ZN7log4cxx7helpers8WideLifeINS0_10XMLDOMNode15ClazzXMLDOMNodeEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_10XMLDOMNode15ClazzXMLDOMNodeEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_10XMLDOMNode15ClazzXMLDOMNodeEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14XMLDOMDocument19ClazzXMLDOMDocumentEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14XMLDOMDocument19ClazzXMLDOMDocumentEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14XMLDOMDocument19ClazzXMLDOMDocumentEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_13XMLDOMElement18ClazzXMLDOMElementEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_13XMLDOMElement18ClazzXMLDOMElementEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_13XMLDOMElement18ClazzXMLDOMElementEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14XMLDOMNodeList19ClazzXMLDOMNodeListEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14XMLDOMNodeList19ClazzXMLDOMNodeListEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14XMLDOMNodeList19ClazzXMLDOMNodeListEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi24TriggeringEventEvaluator29ClazzTriggeringEventEvaluatorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi24TriggeringEventEvaluator29ClazzTriggeringEventEvaluatorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi24TriggeringEventEvaluator29ClazzTriggeringEventEvaluatorEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter18LocationInfoFilter23ClazzLocationInfoFilterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter18LocationInfoFilter23ClazzLocationInfoFilterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter18LocationInfoFilter23ClazzLocationInfoFilterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6Logger11ClazzLoggerEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6Logger11ClazzLoggerEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6Logger11ClazzLoggerEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi12LoggingEvent17ClazzLoggingEventEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi12LoggingEvent17ClazzLoggingEventEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi12LoggingEvent17ClazzLoggingEventEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6LogLogEEC2Ev:
   40|      1|	{		
   41|      1|		new(&storage) T();
   42|      1|	}
_ZN7log4cxx7helpers8WideLifeINS0_6LogLogEED2Ev:
   53|      1|	{
   54|       |#if LOG4CXX_EVENTS_AT_EXIT
   55|       |		// keep the holded value alive
   56|       |#else
   57|      1|		value().~T();
   58|      1|#endif
   59|      1|	}
_ZN7log4cxx7helpers8WideLifeINS0_6LogLogEE5valueEv:
   62|     13|	{
   63|     13|		return *reinterpret_cast<T*>(&storage);
   64|     13|	}
_ZN7log4cxx7helpers8WideLifeINS0_6LogLogEEcvRS2_Ev:
   72|     12|	{
   73|     12|		return value();
   74|     12|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi25DefaultRepositorySelector30ClazzDefaultRepositorySelectorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi25DefaultRepositorySelector30ClazzDefaultRepositorySelectorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi25DefaultRepositorySelector30ClazzDefaultRepositorySelectorEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling22ManualTriggeringPolicy27ClazzManualTriggeringPolicyEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling22ManualTriggeringPolicy27ClazzManualTriggeringPolicyEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling22ManualTriggeringPolicy27ClazzManualTriggeringPolicyEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_2db12ODBCAppender17ClazzODBCAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_2db12ODBCAppender17ClazzODBCAppenderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_2db12ODBCAppender17ClazzODBCAppenderEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_20OnlyOnceErrorHandler25ClazzOnlyOnceErrorHandlerEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_20OnlyOnceErrorHandler25ClazzOnlyOnceErrorHandlerEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_20OnlyOnceErrorHandler25ClazzOnlyOnceErrorHandlerEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_12OutputStream17ClazzOutputStreamEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_12OutputStream17ClazzOutputStreamEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_12OutputStream17ClazzOutputStreamEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern16PatternConverter21ClazzPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern16PatternConverter21ClazzPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern16PatternConverter21ClazzPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_13PatternLayout18ClazzPatternLayoutEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_13PatternLayout18ClazzPatternLayoutEE5valueEv:
   62|      8|	{
   63|      8|		return *reinterpret_cast<T*>(&storage);
   64|      8|	}
_ZN7log4cxx7helpers8WideLifeINS_13PatternLayout18ClazzPatternLayoutEEcvRS3_Ev:
   72|      8|	{
   73|      8|		return value();
   74|      8|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern26PropertiesPatternConverter31ClazzPropertiesPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern26PropertiesPatternConverter31ClazzPropertiesPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern26PropertiesPatternConverter31ClazzPropertiesPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_20PropertyConfigurator25ClazzPropertyConfiguratorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_20PropertyConfigurator25ClazzPropertyConfiguratorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_20PropertyConfigurator25ClazzPropertyConfiguratorEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Reader11ClazzReaderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Reader11ClazzReaderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Reader11ClazzReaderEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28RelativeTimePatternConverter33ClazzRelativeTimePatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28RelativeTimePatternConverter33ClazzRelativeTimePatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28RelativeTimePatternConverter33ClazzRelativeTimePatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling19RollingFileAppender24ClazzRollingFileAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling19RollingFileAppender24ClazzRollingFileAppenderEE5valueEv:
   62|      3|	{
   63|      3|		return *reinterpret_cast<T*>(&storage);
   64|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling19RollingFileAppender24ClazzRollingFileAppenderEEcvRS4_Ev:
   72|      3|	{
   73|      3|		return value();
   74|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling13RollingPolicy18ClazzRollingPolicyEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling13RollingPolicy18ClazzRollingPolicyEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling13RollingPolicy18ClazzRollingPolicyEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling17RollingPolicyBase22ClazzRollingPolicyBaseEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling17RollingPolicyBase22ClazzRollingPolicyBaseEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling17RollingPolicyBase22ClazzRollingPolicyBaseEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling19RolloverDescription24ClazzRolloverDescriptionEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling19RolloverDescription24ClazzRolloverDescriptionEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling19RolloverDescription24ClazzRolloverDescriptionEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern33ShortFileLocationPatternConverter38ClazzShortFileLocationPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern33ShortFileLocationPatternConverter38ClazzShortFileLocationPatternConverterEE5valueEv:
   62|      3|	{
   63|      3|		return *reinterpret_cast<T*>(&storage);
   64|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern33ShortFileLocationPatternConverter38ClazzShortFileLocationPatternConverterEEcvRS4_Ev:
   72|      3|	{
   73|      3|		return value();
   74|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_12SimpleLayout17ClazzSimpleLayoutEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_12SimpleLayout17ClazzSimpleLayoutEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_12SimpleLayout17ClazzSimpleLayoutEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling25SizeBasedTriggeringPolicy30ClazzSizeBasedTriggeringPolicyEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling25SizeBasedTriggeringPolicy30ClazzSizeBasedTriggeringPolicyEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling25SizeBasedTriggeringPolicy30ClazzSizeBasedTriggeringPolicyEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net16DefaultEvaluator21ClazzDefaultEvaluatorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net16DefaultEvaluator21ClazzDefaultEvaluatorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net16DefaultEvaluator21ClazzDefaultEvaluatorEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net12SMTPAppender17ClazzSMTPAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net12SMTPAppender17ClazzSMTPAppenderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net12SMTPAppender17ClazzSMTPAppenderEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter17StringMatchFilter22ClazzStringMatchFilterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter17StringMatchFilter22ClazzStringMatchFilterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_6filter17StringMatchFilter22ClazzStringMatchFilterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_15SystemErrWriter20ClazzSystemErrWriterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_15SystemErrWriter20ClazzSystemErrWriterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_15SystemErrWriter20ClazzSystemErrWriterEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_15SystemOutWriter20ClazzSystemOutWriterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_15SystemOutWriter20ClazzSystemOutWriterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_15SystemOutWriter20ClazzSystemOutWriterEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern22ThreadPatternConverter27ClazzThreadPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern22ThreadPatternConverter27ClazzThreadPatternConverterEE5valueEv:
   62|      3|	{
   63|      3|		return *reinterpret_cast<T*>(&storage);
   64|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern22ThreadPatternConverter27ClazzThreadPatternConverterEEcvRS4_Ev:
   72|      3|	{
   73|      3|		return value();
   74|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern30ThreadUsernamePatternConverter35ClazzThreadUsernamePatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern30ThreadUsernamePatternConverter35ClazzThreadUsernamePatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern30ThreadUsernamePatternConverter35ClazzThreadUsernamePatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern36ThrowableInformationPatternConverter41ClazzThrowableInformationPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern36ThrowableInformationPatternConverter41ClazzThrowableInformationPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern36ThrowableInformationPatternConverter41ClazzThrowableInformationPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling22TimeBasedRollingPolicy27ClazzTimeBasedRollingPolicyEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling22TimeBasedRollingPolicy27ClazzTimeBasedRollingPolicyEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling22TimeBasedRollingPolicy27ClazzTimeBasedRollingPolicyEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_8TimeZone13ClazzTimeZoneEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_8TimeZone13ClazzTimeZoneEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_8TimeZone13ClazzTimeZoneEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling16TriggeringPolicy21ClazzTriggeringPolicyEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling16TriggeringPolicy21ClazzTriggeringPolicyEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling16TriggeringPolicy21ClazzTriggeringPolicyEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Writer11ClazzWriterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Writer11ClazzWriterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Writer11ClazzWriterEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_14WriterAppender19ClazzWriterAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_14WriterAppender19ClazzWriterAppenderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_14WriterAppender19ClazzWriterAppenderEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3xml9XMLLayout14ClazzXMLLayoutEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3xml9XMLLayout14ClazzXMLLayoutEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3xml9XMLLayout14ClazzXMLLayoutEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling17ZipCompressAction22ClazzZipCompressActionEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling17ZipCompressAction22ClazzZipCompressActionEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling17ZipCompressAction22ClazzZipCompressActionEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net14TelnetAppender19ClazzTelnetAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net14TelnetAppender19ClazzTelnetAppenderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net14TelnetAppender19ClazzTelnetAppenderEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net17XMLSocketAppender22ClazzXMLSocketAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net17XMLSocketAppender22ClazzXMLSocketAppenderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net17XMLSocketAppender22ClazzXMLSocketAppenderEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net14SyslogAppender19ClazzSyslogAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net14SyslogAppender19ClazzSyslogAppenderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3net14SyslogAppender19ClazzSyslogAppenderEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3xml15DOMConfigurator20ClazzDOMConfiguratorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3xml15DOMConfigurator20ClazzDOMConfiguratorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3xml15DOMConfigurator20ClazzDOMConfiguratorEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling6Action11ClazzActionEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling6Action11ClazzActionEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling6Action11ClazzActionEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_22AppenderAttachableImpl27ClazzAppenderAttachableImplEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_22AppenderAttachableImpl27ClazzAppenderAttachableImplEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_22AppenderAttachableImpl27ClazzAppenderAttachableImplEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
aprinitializer.cpp:_ZN7log4cxx7helpers8WideLifeIN12_GLOBAL__N_115apr_environmentEEC2Ev:
   40|      1|	{		
   41|      1|		new(&storage) T();
   42|      1|	}
aprinitializer.cpp:_ZN7log4cxx7helpers8WideLifeIN12_GLOBAL__N_115apr_environmentEED2Ev:
   53|      1|	{
   54|       |#if LOG4CXX_EVENTS_AT_EXIT
   55|       |		// keep the holded value alive
   56|       |#else
   57|      1|		value().~T();
   58|      1|#endif
   59|      1|	}
aprinitializer.cpp:_ZN7log4cxx7helpers8WideLifeIN12_GLOBAL__N_115apr_environmentEE5valueEv:
   62|      1|	{
   63|      1|		return *reinterpret_cast<T*>(&storage);
   64|      1|	}
_ZN7log4cxx7helpers8WideLifeINS0_14APRInitializerEEC2Ev:
   40|      1|	{		
   41|      1|		new(&storage) T();
   42|      1|	}
_ZN7log4cxx7helpers8WideLifeINS0_14APRInitializerEED2Ev:
   53|      1|	{
   54|       |#if LOG4CXX_EVENTS_AT_EXIT
   55|       |		// keep the holded value alive
   56|       |#else
   57|      1|		value().~T();
   58|      1|#endif
   59|      1|	}
_ZN7log4cxx7helpers8WideLifeINS0_14APRInitializerEE5valueEv:
   62|    296|	{
   63|    296|		return *reinterpret_cast<T*>(&storage);
   64|    296|	}
_ZN7log4cxx7helpers8WideLifeINS0_14APRInitializerEEcvRS2_Ev:
   72|    295|	{
   73|    295|		return value();
   74|    295|	}
_ZN7log4cxx7helpers8WideLifeINS_13AsyncAppender18ClazzAsyncAppenderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_13AsyncAppender18ClazzAsyncAppenderEE5valueEv:
   62|      3|	{
   63|      3|		return *reinterpret_cast<T*>(&storage);
   64|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_13AsyncAppender18ClazzAsyncAppenderEEcvRS3_Ev:
   72|      3|	{
   73|      3|		return value();
   74|      3|	}
_ZN7log4cxx7helpers8WideLifeINS0_14BufferedWriter19ClazzBufferedWriterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14BufferedWriter19ClazzBufferedWriterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14BufferedWriter19ClazzBufferedWriterEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14CharsetDecoder19ClazzCharsetDecoderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14CharsetDecoder19ClazzCharsetDecoderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14CharsetDecoder19ClazzCharsetDecoderEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14CharsetEncoder19ClazzCharsetEncoderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14CharsetEncoder19ClazzCharsetEncoderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14CharsetEncoder19ClazzCharsetEncoderEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern25ClassNamePatternConverter30ClazzClassNamePatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern25ClassNamePatternConverter30ClazzClassNamePatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern25ClassNamePatternConverter30ClazzClassNamePatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern26ColorStartPatternConverter31ClazzColorStartPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern26ColorStartPatternConverter31ClazzColorStartPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern26ColorStartPatternConverter31ClazzColorStartPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern24ColorEndPatternConverter29ClazzColorEndPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern24ColorEndPatternConverter29ClazzColorEndPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern24ColorEndPatternConverter29ClazzColorEndPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi12Configurator17ClazzConfiguratorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi12Configurator17ClazzConfiguratorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_3spi12Configurator17ClazzConfiguratorEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_4Date9ClazzDateEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_4Date9ClazzDateEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_4Date9ClazzDateEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_10DateFormat15ClazzDateFormatEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_10DateFormat15ClazzDateFormatEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_10DateFormat15ClazzDateFormatEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern20DatePatternConverter25ClazzDatePatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern20DatePatternConverter25ClazzDatePatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern20DatePatternConverter25ClazzDatePatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_20DefaultLoggerFactory25ClazzDefaultLoggerFactoryEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_20DefaultLoggerFactory25ClazzDefaultLoggerFactoryEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_20DefaultLoggerFactory25ClazzDefaultLoggerFactoryEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_15FileInputStream20ClazzFileInputStreamEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_15FileInputStream20ClazzFileInputStreamEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_15FileInputStream20ClazzFileInputStreamEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28FileLocationPatternConverter33ClazzFileLocationPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28FileLocationPatternConverter33ClazzFileLocationPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28FileLocationPatternConverter33ClazzFileLocationPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling16FileRenameAction21ClazzFileRenameActionEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling16FileRenameAction21ClazzFileRenameActionEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7rolling16FileRenameAction21ClazzFileRenameActionEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern14FormattingInfo19ClazzFormattingInfoEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern14FormattingInfo19ClazzFormattingInfoEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern14FormattingInfo19ClazzFormattingInfoEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_7pattern14FormattingInfoEEEEC2IS6_JEQntsr3stdE7same_asINS1_IT_EETL0__EEEOS9_DpOT0_:
   48|      1|	{		
   49|      1|		new(&storage) T(std::forward<Arg0>(arg0), std::forward<Args>(args)...);
   50|      1|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_7pattern14FormattingInfoEEEED2Ev:
   53|      1|	{
   54|       |#if LOG4CXX_EVENTS_AT_EXIT
   55|       |		// keep the holded value alive
   56|       |#else
   57|      1|		value().~T();
   58|      1|#endif
   59|      1|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_7pattern14FormattingInfoEEEE5valueEv:
   62|     24|	{
   63|     24|		return *reinterpret_cast<T*>(&storage);
   64|     24|	}
_ZN7log4cxx7helpers8WideLifeINSt3__110shared_ptrINS_7pattern14FormattingInfoEEEEcvRS6_Ev:
   72|     23|	{
   73|     23|		return value();
   74|     23|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28FullLocationPatternConverter33ClazzFullLocationPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28FullLocationPatternConverter33ClazzFullLocationPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28FullLocationPatternConverter33ClazzFullLocationPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_9Hierarchy14ClazzHierarchyEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_9Hierarchy14ClazzHierarchyEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_9Hierarchy14ClazzHierarchyEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_11InetAddress16ClazzInetAddressEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_11InetAddress16ClazzInetAddressEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_11InetAddress16ClazzInetAddressEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_11InputStream16ClazzInputStreamEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_11InputStream16ClazzInputStreamEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_11InputStream16ClazzInputStreamEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_17InputStreamReader22ClazzInputStreamReaderEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_17InputStreamReader22ClazzInputStreamReaderEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_17InputStreamReader22ClazzInputStreamReaderEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern21LevelPatternConverter26ClazzLevelPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern21LevelPatternConverter26ClazzLevelPatternConverterEE5valueEv:
   62|      3|	{
   63|      3|		return *reinterpret_cast<T*>(&storage);
   64|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern21LevelPatternConverter26ClazzLevelPatternConverterEEcvRS4_Ev:
   72|      3|	{
   73|      3|		return value();
   74|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28LineLocationPatternConverter33ClazzLineLocationPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28LineLocationPatternConverter33ClazzLineLocationPatternConverterEE5valueEv:
   62|      3|	{
   63|      3|		return *reinterpret_cast<T*>(&storage);
   64|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28LineLocationPatternConverter33ClazzLineLocationPatternConverterEEcvRS4_Ev:
   72|      3|	{
   73|      3|		return value();
   74|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern29LineSeparatorPatternConverter34ClazzLineSeparatorPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern29LineSeparatorPatternConverter34ClazzLineSeparatorPatternConverterEE5valueEv:
   62|      3|	{
   63|      3|		return *reinterpret_cast<T*>(&storage);
   64|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern29LineSeparatorPatternConverter34ClazzLineSeparatorPatternConverterEEcvRS4_Ev:
   72|      3|	{
   73|      3|		return value();
   74|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern23LiteralPatternConverter28ClazzLiteralPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern23LiteralPatternConverter28ClazzLiteralPatternConverterEE5valueEv:
   62|      6|	{
   63|      6|		return *reinterpret_cast<T*>(&storage);
   64|      6|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern23LiteralPatternConverter28ClazzLiteralPatternConverterEEcvRS4_Ev:
   72|      6|	{
   73|      6|		return value();
   74|      6|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern22LoggerPatternConverter27ClazzLoggerPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern22LoggerPatternConverter27ClazzLoggerPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern22LoggerPatternConverter27ClazzLoggerPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28LoggingEventPatternConverter33ClazzLoggingEventPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28LoggingEventPatternConverter33ClazzLoggingEventPatternConverterEE5valueEv:
   62|     22|	{
   63|     22|		return *reinterpret_cast<T*>(&storage);
   64|     22|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern28LoggingEventPatternConverter33ClazzLoggingEventPatternConverterEEcvRS4_Ev:
   72|     22|	{
   73|     22|		return value();
   74|     22|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern23MessagePatternConverter28ClazzMessagePatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern23MessagePatternConverter28ClazzMessagePatternConverterEE5valueEv:
   62|      3|	{
   63|      3|		return *reinterpret_cast<T*>(&storage);
   64|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern23MessagePatternConverter28ClazzMessagePatternConverterEEcvRS4_Ev:
   72|      3|	{
   73|      3|		return value();
   74|      3|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern30MethodLocationPatternConverter35ClazzMethodLocationPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern30MethodLocationPatternConverter35ClazzMethodLocationPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern30MethodLocationPatternConverter35ClazzMethodLocationPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern20NamePatternConverter25ClazzNamePatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern20NamePatternConverter25ClazzNamePatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern20NamePatternConverter25ClazzNamePatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern19MDCPatternConverter24ClazzMDCPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern19MDCPatternConverter24ClazzMDCPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern19MDCPatternConverter24ClazzMDCPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern19NDCPatternConverter24ClazzNDCPatternConverterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern19NDCPatternConverter24ClazzNDCPatternConverterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern19NDCPatternConverter24ClazzNDCPatternConverterEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_18OutputStreamWriter23ClazzOutputStreamWriterEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_18OutputStreamWriter23ClazzOutputStreamWriterEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_18OutputStreamWriter23ClazzOutputStreamWriterEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Socket11ClazzSocketEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Socket11ClazzSocketEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_6Socket11ClazzSocketEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_18SocketOutputStream23ClazzSocketOutputStreamEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_18SocketOutputStream23ClazzSocketOutputStreamEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_18SocketOutputStream23ClazzSocketOutputStreamEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern15NameAbbreviator20ClazzNameAbbreviatorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern15NameAbbreviator20ClazzNameAbbreviatorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern15NameAbbreviator20ClazzNameAbbreviatorEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern14NOPAbbreviator19ClazzNOPAbbreviatorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern14NOPAbbreviator19ClazzNOPAbbreviatorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern14NOPAbbreviator19ClazzNOPAbbreviatorEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern21MaxElementAbbreviator26ClazzMaxElementAbbreviatorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern21MaxElementAbbreviator26ClazzMaxElementAbbreviatorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern21MaxElementAbbreviator26ClazzMaxElementAbbreviatorEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern18PatternAbbreviator23ClazzPatternAbbreviatorEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern18PatternAbbreviator23ClazzPatternAbbreviatorEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS_7pattern18PatternAbbreviator23ClazzPatternAbbreviatorEEcvRS4_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14DatagramPacket19ClazzDatagramPacketEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14DatagramPacket19ClazzDatagramPacketEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14DatagramPacket19ClazzDatagramPacketEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14DatagramSocket19ClazzDatagramSocketEEC2Ev:
   40|      2|	{		
   41|      2|		new(&storage) T();
   42|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14DatagramSocket19ClazzDatagramSocketEE5valueEv:
   62|      2|	{
   63|      2|		return *reinterpret_cast<T*>(&storage);
   64|      2|	}
_ZN7log4cxx7helpers8WideLifeINS0_14DatagramSocket19ClazzDatagramSocketEEcvRS3_Ev:
   72|      2|	{
   73|      2|		return value();
   74|      2|	}

_ZNK7log4cxx6Layout4castERKNS_7helpers5ClassE:
   41|      6|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      6|	{\
  |  |  145|      6|		const void * object = 0;\
  |  |  146|      6|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 6]
  |  |  ------------------
  ------------------
   42|      6|		LOG4CXX_CAST_ENTRY(Layout)
  ------------------
  |  |  155|      6|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 2, False: 4]
  |  |  ------------------
  ------------------
   43|      4|		LOG4CXX_CAST_ENTRY(spi::OptionHandler)
  ------------------
  |  |  155|      4|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 4, False: 0]
  |  |  ------------------
  ------------------
   44|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      4|	}\
  ------------------

_ZN7log4cxx5Level10LevelClassC2Ev:
   54|      2|				LevelClass() : helpers::Class() {}
_ZNK7log4cxx5Level10LevelClass7getNameEv:
   57|      2|				{
   58|      2|					return LOG4CXX_STR("Level");
  ------------------
  |  |   51|      2|		#define LOG4CXX_STR(str) str
  ------------------
   59|      2|				}
_ZNK7log4cxx5Level5toIntEv:
  285|      2|		{
  286|      2|			return level;
  287|      2|		}

_ZN7log4cxx6Logger16isInfoEnabledForERKNSt3__110shared_ptrIS0_EE:
 1300|   234k|		{
 1301|   234k|			return logger && logger->m_threshold <= Level::INFO_INT && logger->isInfoEnabled();
  ------------------
  |  Branch (1301:11): [True: 234k, False: 0]
  |  Branch (1301:21): [True: 234k, False: 0]
  |  Branch (1301:63): [True: 234k, False: 0]
  ------------------
 1302|   234k|		}

_ZNK7log4cxx7pattern21LevelPatternConverter4castERKNS_7helpers5ClassE:
   39|      1|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      1|	{\
  |  |  145|      1|		const void * object = 0;\
  |  |  146|      1|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   40|      1|		LOG4CXX_CAST_ENTRY(LevelPatternConverter)
  ------------------
  |  |  155|      1|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   41|      1|		LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
  ------------------
  |  |  161|      1|	object = Interface::cast(clazz);\
  |  |  162|      1|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 1, False: 0]
  |  |  ------------------
  ------------------
   42|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      1|	}\
  ------------------

_ZNK7log4cxx7pattern28LineLocationPatternConverter4castERKNS_7helpers5ClassE:
   40|      1|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      1|	{\
  |  |  145|      1|		const void * object = 0;\
  |  |  146|      1|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   41|      1|		LOG4CXX_CAST_ENTRY(LineLocationPatternConverter)
  ------------------
  |  |  155|      1|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   42|      1|		LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
  ------------------
  |  |  161|      1|	object = Interface::cast(clazz);\
  |  |  162|      1|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 1, False: 0]
  |  |  ------------------
  ------------------
   43|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      1|	}\
  ------------------

_ZNK7log4cxx7pattern29LineSeparatorPatternConverter4castERKNS_7helpers5ClassE:
   40|      1|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      1|	{\
  |  |  145|      1|		const void * object = 0;\
  |  |  146|      1|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   41|      1|		LOG4CXX_CAST_ENTRY(LineSeparatorPatternConverter)
  ------------------
  |  |  155|      1|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   42|      1|		LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
  ------------------
  |  |  161|      1|	object = Interface::cast(clazz);\
  |  |  162|      1|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 1, False: 0]
  |  |  ------------------
  ------------------
   43|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      1|	}\
  ------------------

_ZNK7log4cxx7pattern23LiteralPatternConverter4castERKNS_7helpers5ClassE:
   41|      4|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      4|	{\
  |  |  145|      4|		const void * object = 0;\
  |  |  146|      4|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 4]
  |  |  ------------------
  ------------------
   42|      4|		LOG4CXX_CAST_ENTRY(LiteralPatternConverter)
  ------------------
  |  |  155|      4|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 4]
  |  |  ------------------
  ------------------
   43|      4|		LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
  ------------------
  |  |  161|      4|	object = Interface::cast(clazz);\
  |  |  162|      4|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 4, False: 0]
  |  |  ------------------
  ------------------
   44|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      4|	}\
  ------------------

_ZNK7log4cxx7pattern28LoggingEventPatternConverter4castERKNS_7helpers5ClassE:
   52|     10|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|     10|	{\
  |  |  145|     10|		const void * object = 0;\
  |  |  146|     10|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 10]
  |  |  ------------------
  ------------------
   53|     10|		LOG4CXX_CAST_ENTRY(LoggingEventPatternConverter)
  ------------------
  |  |  155|     10|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 10, False: 0]
  |  |  ------------------
  ------------------
   54|      0|		LOG4CXX_CAST_ENTRY_CHAIN(PatternConverter)
  ------------------
  |  |  161|      0|	object = Interface::cast(clazz);\
  |  |  162|      0|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 0, False: 0]
  |  |  ------------------
  ------------------
   55|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      0|	}\
  ------------------

_ZNK7log4cxx7pattern23MessagePatternConverter4castERKNS_7helpers5ClassE:
   39|      1|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      1|	{\
  |  |  145|      1|		const void * object = 0;\
  |  |  146|      1|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   40|      1|		LOG4CXX_CAST_ENTRY(MessagePatternConverter)
  ------------------
  |  |  155|      1|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   41|      1|		LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
  ------------------
  |  |  161|      1|	object = Interface::cast(clazz);\
  |  |  162|      1|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 1, False: 0]
  |  |  ------------------
  ------------------
   42|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      1|	}\
  ------------------

_ZNK7log4cxx7pattern33ShortFileLocationPatternConverter4castERKNS_7helpers5ClassE:
   45|      1|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      1|	{\
  |  |  145|      1|		const void * object = 0;\
  |  |  146|      1|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   46|      1|		LOG4CXX_CAST_ENTRY(ShortFileLocationPatternConverter)
  ------------------
  |  |  155|      1|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   47|      1|		LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
  ------------------
  |  |  161|      1|	object = Interface::cast(clazz);\
  |  |  162|      1|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 1, False: 0]
  |  |  ------------------
  ------------------
   48|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      1|	}\
  ------------------

_ZNK7log4cxx7pattern22ThreadPatternConverter4castERKNS_7helpers5ClassE:
   39|      1|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      1|	{\
  |  |  145|      1|		const void * object = 0;\
  |  |  146|      1|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   40|      1|		LOG4CXX_CAST_ENTRY(ThreadPatternConverter)
  ------------------
  |  |  155|      1|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 1]
  |  |  ------------------
  ------------------
   41|      1|		LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter)
  ------------------
  |  |  161|      1|	object = Interface::cast(clazz);\
  |  |  162|      1|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 1, False: 0]
  |  |  ------------------
  ------------------
   42|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      1|	}\
  ------------------

_ZNK7log4cxx13PatternLayout4castERKNS_7helpers5ClassE:
  452|      6|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|      6|	{\
  |  |  145|      6|		const void * object = 0;\
  |  |  146|      6|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 6]
  |  |  ------------------
  ------------------
  453|      6|		LOG4CXX_CAST_ENTRY(PatternLayout)
  ------------------
  |  |  155|      6|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 0, False: 6]
  |  |  ------------------
  ------------------
  454|      6|		LOG4CXX_CAST_ENTRY_CHAIN(Layout)
  ------------------
  |  |  161|      6|	object = Interface::cast(clazz);\
  |  |  162|      6|	if (object != 0) return object;
  |  |  ------------------
  |  |  |  Branch (162:6): [True: 6, False: 0]
  |  |  ------------------
  ------------------
  455|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|      6|	}\
  ------------------

_ZN7log4cxx16AppenderSkeleton23AppenderSkeletonPrivateC2Ev:
   31|      1|		threshold(Level::getAll()),
   32|      1|		errorHandler(std::make_shared<LOG4CXX_NS::helpers::OnlyOnceErrorHandler>()),
   33|      1|		closed(false) {}
_ZN7log4cxx16AppenderSkeleton23AppenderSkeletonPrivateD2Ev:
   41|      1|	virtual ~AppenderSkeletonPrivate(){}

_ZN7log4cxx4priv17doubledLayoutSizeEm:
   31|      1|	{
   32|      1|		const size_t maxSize = (std::numeric_limits<size_t>::max)();
   33|      1|		return value > maxSize / 2 ? maxSize : value * 2;
  ------------------
  |  Branch (33:10): [True: 0, False: 1]
  ------------------
   34|      1|	}
_ZN7log4cxx4priv21reserveFormattedEventERNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEmm:
   38|   234k|	{
   39|   234k|		const size_t maxSize = output.max_size();
   40|   234k|		if (messageSize <= maxSize && fixedSize <= maxSize - messageSize)
  ------------------
  |  Branch (40:7): [True: 234k, False: 0]
  |  Branch (40:33): [True: 234k, False: 0]
  ------------------
   41|   234k|		{
   42|   234k|			output.reserve(fixedSize + messageSize);
   43|   234k|		}
   44|   234k|	}

_ZN7log4cxx7pattern16PatternConverter23PatternConverterPrivateC2ERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEESB_:
   35|     10|		name(_name),
   36|     10|		style(_style) {}
_ZN7log4cxx7pattern16PatternConverter23PatternConverterPrivateD2Ev:
   38|     10|	virtual ~PatternConverterPrivate(){}

_ZN7log4cxx3spi18AppenderAttachableD2Ev:
   89|      2|		virtual ~AppenderAttachable() {}

_ZNK7log4cxx3spi25DefaultRepositorySelector4castERKNS_7helpers5ClassE:
   40|    289|		BEGIN_LOG4CXX_CAST_MAP()
  ------------------
  |  |  144|    289|	{\
  |  |  145|    289|		const void * object = 0;\
  |  |  146|    289|		if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
  |  |  ------------------
  |  |  |  Branch (146:7): [True: 0, False: 289]
  |  |  ------------------
  ------------------
   41|    289|		LOG4CXX_CAST_ENTRY(RepositorySelector)
  ------------------
  |  |  155|    289|	if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
  |  |  ------------------
  |  |  |  Branch (155:6): [True: 289, False: 0]
  |  |  ------------------
  ------------------
   42|      0|		END_LOG4CXX_CAST_MAP()
  ------------------
  |  |  149|      0|	return object;\
  |  |  150|    289|	}\
  ------------------

_ZN7log4cxx3spi12ErrorHandlerD2Ev:
   72|      1|		virtual ~ErrorHandler() {}

_ZN7log4cxx3spi12LocationInfo17calcShortFileNameEPKc:
   58|   234k|		static constexpr const char* calcShortFileName(const char* fileName){
   59|       |#else
   60|       |		static const char* calcShortFileName(const char* fileName){
   61|       |#endif
   62|   234k|			if (fileName == nullptr) return nullptr;
  ------------------
  |  Branch (62:8): [True: 0, False: 234k]
  ------------------
   63|       |#if defined(_MSC_VER)
   64|       |			// As at 2024, the MSVC optimizer does not inline a function that calls another function
   65|       |			const char* location = nullptr;
   66|       |			for (auto p = fileName; *p; ++p)
   67|       |				if (*p == LOG4CXX_SHORT_FILENAME_SPLIT_CHAR)
   68|       |					location = p;
   69|       |#else
   70|   234k|			const char* location = strrchr(fileName, LOG4CXX_SHORT_FILENAME_SPLIT_CHAR);
  ------------------
  |  |   28|   234k|#define LOG4CXX_SHORT_FILENAME_SPLIT_CHAR '/'
  ------------------
   71|   234k|#endif
   72|   234k|			return location == nullptr ? fileName : location + 1;
  ------------------
  |  Branch (72:11): [True: 0, False: 234k]
  ------------------
   73|   234k|		}

_ZN7log4cxx3spi13LoggerFactoryD2Ev:
   43|      1|		virtual ~LoggerFactory() {}

_ZN7log4cxx3spi16LoggerRepositoryD2Ev:
   51|      1|		virtual ~LoggerRepository() {}

_ZN7log4cxx3spi13OptionHandlerD2Ev:
   38|      3|		virtual ~OptionHandler() {}

_ZN7log4cxx3spi18RepositorySelectorD2Ev:
   46|      1|		virtual ~RepositorySelector() {}

_ZN7log4cxx3spi10RootLoggerD2Ev:
   50|      1|		~RootLogger() {}

