Esempio n. 1
0
bool ComboLayer::init()
{
    if(!CCLayer::init()){
        return false;
    }
    initContent();
    return true;
}
Esempio n. 2
0
bool BossLotteryNotice::init()
{
    if(!CCNode::init()){
        return false;
    }
    initContent();
    return true;
}
Esempio n. 3
0
bool GameSet::init()
{
    if(!CCLayer::init()){
        return false;
    }
    
    initContent();
    return true;
}
Esempio n. 4
0
bool CommonBg::init()
{
	if (!Node::init())
	{
		return false;
	}
	initContent();
	return true;
}
Esempio n. 5
0
bool NewChapterOpen::init()
{
    if(!CCNode::init()){
        return false;
    }
    setPosition(INSTANCE(GameUtils)->getWindowsCenterPosition());
    initContent();
    return true;
}
bool SingleSceneFrame::init()
{
    if (!Node::init())
    {
        return false;
    }
    initContent();
    return true;
}
Esempio n. 7
0
bool BossLottery::init()
{
    if(!CCLayer::init()){
        return false;
    }
    
    initContent();
    return true;
    
}
Esempio n. 8
0
bool LoadingScene::init()
{
	if (!Layer::init())
	{
		return false;
	}

	initContent();

	return true;
}
FileSystemBrowser::FileSystemBrowser():
    View(),
    _workspacePath( "/" )
{
    setWindowTitle( "File System" );
    
    initTitleBar();
    
    initMenu();
    
    initContent();
}
Esempio n. 10
0
MChatBrowser::MChatBrowser(QWidget *pParent /*= 0*/) : QWebView(pParent), _freeze(false)
{
	qtdChatLog = new QTextDocument(this);
	qtcChatCursor = new QTextCursor(qtdChatLog);
	connect(this, SIGNAL(linkClicked(const QUrl &)), this, SLOT(handleLinkClicked(const QUrl &)));
	connect(this, SIGNAL(loadFinished(bool)), this, SLOT(handleLoadFinished(bool)));
	//lineEndings.append(0);
	setAcceptDrops(false);
	setPage(new MWebPage(this));
	initContent();
	page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
	page()->action(QWebPage::Reload)->setVisible(false);
}
Esempio n. 11
0
BrowerEditAreaWidget::BrowerEditAreaWidget(const QString &filePath) :
    EditAreaWidget(filePath, 0)

{
    em.setEditorType(EditorModel::EditorType::BROWER);
    webkitHandler = new BrowerWebkitHandler;
    brower = new BaseWebView(this);
    brower->setAcceptDrops(false);
    brower->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
    addJavascriptObject();

    initSignalsAndSlots();
    initContent(filePath);

}
Esempio n. 12
0
ElfSection::ElfSection(const std::string &name,
                       Elf64_Shdr *shdr,
                       uint8_t *rawData)
    : _nameStr(name)
    , _name(shdr->sh_name)
    , _type(shdr->sh_type)
    , _flags(shdr->sh_flags)
    , _addr(shdr->sh_addr)
    , _offset(shdr->sh_offset)
    , _size(shdr->sh_size)
    , _link(shdr->sh_link)
    , _info(shdr->sh_info)
    , _addralign(shdr->sh_addralign)
    , _entsize(shdr->sh_entsize)
    , _content(initContent(shdr, rawData))
{
}
Esempio n. 13
0
MarkdownEditAreaWidget::MarkdownEditAreaWidget( MdCharmForm *mainForm, const QString &filePath, const QUrl &baseUrl ) :
    EditAreaWidget( filePath,
                    AllowSaveAs | AllowSelectAll | AllowExportToHtml | AllowExportToODT
                    | AllowExportToPdf | AllowPrint | AllowPreview | AllowFind | AllowSplit ),
    mainForm( mainForm )
{
    inited = false;
    //    lastRevision = -2;
    this->baseUrl = baseUrl;
    em.setEditorType( EditorModel::MARKDOWN );

    initGui();
    initContent( filePath );
    initConfiguration();
    initPreviewerMatter();
    initSignalsAndSlots();
}
Esempio n. 14
0
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent, Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint), skype_path(QString()), skype_was_killed(false)
{
    /* Back-end */
    //Settings
    settings = new QSettings("skype-mood.ini", QSettings::IniFormat, this);

    //Translation
    initTranslator();

    //Get Skype path
    if(!findSkype())
    {
        QMessageBox::warning(this, tr("Skype not found"), tr("Skype executable not found, some features won't work."));
    }

    //History data
    history_model = new QStringListModel(settings->value("history/list").toStringList(), this);

    //Prepare SQLite connection
    maindb = QSqlDatabase::addDatabase("QSQLITE");
    maindb.setHostName("localhost");
    maindb.setUserName("root");
    maindb.setPassword("");

    /* GUI */
    //Title
    setWindowTitle("Skype Richtext Mood Editor");

    //Filling the window
    setCentralWidget(initContent());
    disableEditing();
    resize(640, 390);

    //Centering the window on the current screen
    QDesktopWidget desktop_widget;
    QRect screen_geometry = desktop_widget.availableGeometry();
    move(screen_geometry.width() / 2 - width() / 2, screen_geometry.height() / 2 - height() / 2);

    /* Looking for main.db */
    if(!listMaindb())
    {
        QMessageBox::warning(this, tr("AppData/Skype not found"), tr("There is no Skype profile for this user."));
    }
}
Esempio n. 15
0
void MarkdownWebkitHandler::domReady()
{
    m_domReady = true;
    emit initContent();
}
Esempio n. 16
0
void MChatBrowser::clear()
{
	initContent();
}
Esempio n. 17
0
void CUIQuestBook::UpdateQuestContent( int nQuestIdx )
{
	CUITooltipMgr::getSingleton()->setData(NULL);

	m_nSelectQuestIdx = nQuestIdx;

	std::map<int, CUIImage*>::iterator iter = m_mapQuestSelect.begin();
	std::map<int, CUIImage*>::iterator iter_end = m_mapQuestSelect.end();

	for (; iter != iter_end; ++iter)
	{
		(*iter).second->Hide(TRUE);
	}

	if (m_nSelectQuestIdx <= 0)
	{
		initContent();
		return;
	}

	std::map<int, CUIImage*>::iterator it = m_mapQuestSelect.find(m_nSelectQuestIdx);

	if (it != iter_end)
	{
		(*it).second->Hide(FALSE);
	}

	CQuestDynamicData* pQuestDD = CQuestSystem::Instance().GetDynamicDataByQuestIndex( m_nSelectQuestIdx );
	CQuestDynamicData qdd(CQuestSystem::Instance().GetStaticData(m_nSelectQuestIdx));

	if (GAMEDATAMGR()->GetQuest()->isRaidMessage(m_nSelectQuestIdx) == true)
	{		
		pQuestDD = &qdd;
	}

	// 타입 아이콘
	int nType[eICON_MAX];
	int nToolTipIdx[eICON_MAX];
	nType[eQUEST_TYPE1] = pQuestDD->GetQuestType1();
	nType[eQUEST_TYPE2] = pQuestDD->GetQuestType2();
	nType[eQUEST_SCALE] = pQuestDD->GetQuestPartyScale();

	nToolTipIdx[eQUEST_TYPE1] = nType1StringIdx[nType[eQUEST_TYPE1]];
	nToolTipIdx[eQUEST_TYPE2] = nType2StringIdx[nType[eQUEST_TYPE2]];
	nToolTipIdx[eQUEST_SCALE] = nScaleStringIdx[nType[eQUEST_SCALE]];

	CTString strTooltip;
	COLOR	tempColor;
	int		i;

	for (i = 0; i < eICON_MAX; i++)
	{		
		if(m_pImageArr[i] != NULL)
		{
			m_pImageArr[i]->SetRenderIdx(nType[i]);
			strTooltip.PrintF(_S(nToolTipIdx[i], "타입 툴팁"));
			m_pImageArr[i]->setTooltip(strTooltip.str_String);
			m_pImageArr[i]->Hide(FALSE);
		}
	}	

	// 퀘스트 이름
	if (m_ptbName != NULL)
	{
		tempColor = m_ptbName->GetTextColor();
		m_ptbName->SetAlignTextV(eALIGN_V_CENTER);
		m_ptbName->SetText( CTString(pQuestDD->GetName()), tempColor );
		m_ptbName->StringEllipsis(2);

		if (m_ptbName->IsEllipsis() == true)
		{
			m_ptbName->setTooltip(CTString(pQuestDD->GetName()));
		}
		else
		{
			m_ptbName->setTooltip(CTString(""));
		}
		m_ptbName->Hide(FALSE);
	}

	// List 내용
	if (m_plistContent == NULL)
		return;

	m_plistContent->Hide(FALSE);
	m_plistContent->DeleteAllListItem();
	m_vecOptionPrize.clear();

	if (m_plistScroll)
		m_plistScroll->SetScrollPos(0);

	CUITextBox* pTextBox = NULL;
	CUITextBox* pTempTb = NULL;
	CUIText* pText = NULL;
	CUIImage* pImg = NULL;
	CUIIcon* pIcon = NULL;
	CUIListItem* plistItem = NULL;
	CTString strTemp;

	// 1. Summury
	pTextBox = (CUITextBox*)m_pDesign->CloneSummury();

	if (pTextBox != NULL)
	{		
		pTextBox->SetText(CTString(pQuestDD->GetDesc3()));
		int nCnt = pTextBox->GetLineCount();

		for (i = 0; i < nCnt; ++i)
		{			
			pText = (CUIText*)m_pDesign->CloneSummuryText();

			if(pText != NULL)
			{
				strTemp = pTextBox->GetLineString(i);
				pText->SetText(strTemp);
				m_plistContent->AddListItem(pText);
			}
		}

		SAFE_DELETE(pTextBox);
		pText = (CUIText*)m_pDesign->CloneSpace();
		if (pText != NULL)
		{
			m_plistContent->AddListItem(pText);
		}
	}

	// 2. 진행 상황
	plistItem = (CUIListItem*)m_pDesign->CloneTitle();

	if (plistItem != NULL)
	{
		strTemp.PrintF(_S(1703, "진행상황"));
		pText = (CUIText*)plistItem->findUI("str_copytitle");

		if (pText != NULL)
			pText->SetText(strTemp);

		m_plistContent->AddListItem(plistItem);
	}

	// 진행 상황 내용
	int count = pQuestDD->GetCountStatusDesc();

	for (int index = 0; index < count; index++)
	{
		pTextBox = (CUITextBox*)m_pDesign->CloneDesc();

		if (pTextBox != NULL)
		{
			if (index != 0 && index % 2 == 1)
				tempColor = 0xFF0000FF;
			else
				tempColor = pTextBox->GetTextColor();

			pTextBox->SetText(CTString(pQuestDD->GetStatusDesc(index)), tempColor, TRUE);
			int nCnt = pTextBox->GetLineCount();

			for (i = 0; i < nCnt; ++i)
			{			
				pTempTb = (CUITextBox*)m_pDesign->CloneDesc();
				if(pTempTb != NULL)
				{
					strTemp = pTextBox->GetLineString(i);
					pTempTb->SetText(strTemp, tempColor, TRUE);
					m_plistContent->AddListItem(pTempTb);
				}
			}
			SAFE_DELETE(pTextBox);
		}
	}

	pText = (CUIText*)m_pDesign->CloneSpace();
	if (pText != NULL)
	{
		m_plistContent->AddListItem(pText);
	}

	// 3. Npc
	plistItem = (CUIListItem*)m_pDesign->CloneTitle();

	if (plistItem != NULL)
	{
		int NpcIdx = pQuestDD->GetPrizeNPCIndex();
		// Name
		if (NpcIdx > 0)
		{
			CMobData* pNpc = CMobData::getData(NpcIdx);
			strTemp.PrintF("%s", pNpc->GetName());
		}
		else
		{
			strTemp.PrintF(_S(457, "시스템"));
		}		
			
		pText = (CUIText*)plistItem->findUI("str_copytitle");

		if (pText != NULL)
			pText->SetText(strTemp);

		m_plistContent->AddListItem(plistItem);
	}

	// 4. StartDesc
	pTextBox = (CUITextBox*)m_pDesign->CloneDesc();

	if (pTextBox != NULL)
	{
		pTextBox->SetText(CTString(pQuestDD->GetDesc()));

		int nCnt = pTextBox->GetLineCount();

		for (i = 0; i < nCnt; ++i)
		{			
			pText = (CUIText*)m_pDesign->CloneDescText();

			if(pText != NULL)
			{
				strTemp = pTextBox->GetLineString(i);
				pText->SetText(strTemp);
				m_plistContent->AddListItem(pText);
			}
		}
		
		SAFE_DELETE(pTextBox);
		pText = (CUIText*)m_pDesign->CloneSpace();
		if (pText != NULL)
		{
			m_plistContent->AddListItem(pText);
		}
	}

	// 5. 수행가능 레벨
	plistItem = (CUIListItem*)m_pDesign->CloneTitle();

	if (plistItem != NULL)
	{
		strTemp.PrintF(_S( 1704, "수행가능 레벨" ));

		pText = (CUIText*)plistItem->findUI("str_copytitle");

		if (pText != NULL)
			pText->SetText(strTemp);

		m_plistContent->AddListItem(plistItem);
	}

	// 6. 레벨 값	
	pTextBox = (CUITextBox*)m_pDesign->CloneDesc();

	if (pTextBox != NULL)
	{
		if(pQuestDD->GetNeedMinLevel() == pQuestDD->GetNeedMaxLevel())
		{
			strTemp.PrintF(_S( 1705, "레벨 %d" ), pQuestDD->GetNeedMinLevel());
		}
		else if(pQuestDD->GetNeedMaxLevel()==999)
		{
			strTemp.PrintF(_S( 5667, "레벨 : %d ~ MAX" ), pQuestDD->GetNeedMinLevel());
		}
		else
		{
			strTemp.PrintF(_S( 1706, "레벨 %d ~ 레벨 %d" ), pQuestDD->GetNeedMinLevel(), pQuestDD->GetNeedMaxLevel());
		}

		pTextBox->SetText(strTemp);
		int nCnt = pTextBox->GetLineCount();

		for (i = 0; i < nCnt; ++i)
		{			
			pText = (CUIText*)m_pDesign->CloneDescText();
			if(pText != NULL)
			{
				strTemp = pTextBox->GetLineString(i);
				pText->SetText(strTemp);
				m_plistContent->AddListItem(pText);
			}
		}
		SAFE_DELETE(pTextBox);
		pText = (CUIText*)m_pDesign->CloneSpace();
		if (pText != NULL)
		{
			m_plistContent->AddListItem(pText);
		}
	}

	// 7. 퀘스트 보상	
	// 고정보상
	if(pQuestDD->IsPrizeExist())
	{
		// 보상 타이틀
		plistItem = (CUIListItem*)m_pDesign->CloneTitle();

		if (plistItem != NULL)
		{
			pText = (CUIText*)plistItem->findUI("str_copytitle");

			if (pText != NULL)
				pText->SetText(pQuestDD->GetPrizeDesc( 0 ));

			m_plistContent->AddListItem(plistItem);
		}

		// 보상 아이템		
		CUIImageBox* pImgBox = new CUIImageBox;
		int Count = pQuestDD->GetCountPrizeDesc();

		for( INDEX i = 1; i < Count; ++i )
		{
			plistItem = (CUIListItem*)m_pDesign->CloneListItem();

			if (plistItem == NULL)
				continue;

			// 아이템 설명
			CTString strPrize = pQuestDD->GetPrizeDesc( i );
			bool bIcon = true;
			UIBtnExType eBtnType = UBET_ITEM;

			pTextBox = (CUITextBox*)plistItem->findUI("tb_copyComplete");

			if (pTextBox != NULL)
			{
				tempColor = pTextBox->GetTextColor();
				pTextBox->SetText(strPrize, tempColor, TRUE);
			}

			// 아이콘인지, 이미지 인지 결정
			switch (pQuestDD->GetPrizeType(i-1) )
			{
			case QPRIZE_ITEM:
				eBtnType = UBET_ITEM;
				break;
			case QPRIZE_SKILL:
			case QPRIZE_SSKILL:
				eBtnType = UBET_SKILL;
				break;
			default:
				bIcon = false;
				break;
			}

			pIcon = (CUIIcon*)plistItem->findUI("icon_copyItem");
			pImg = (CUIImage*)plistItem->findUI("img_copyitem");

			// 아이템
			if (bIcon == true)
			{			
				if (pIcon != NULL)
				{
					pIcon->setData(eBtnType, pQuestDD->GetPrizeIndex(i-1));
					pIcon->Hide(FALSE);
				}
			}
			else
			{
				if (pImg != NULL)
				{					
					pImgBox->SetImageByType(CUIImageBox::eImageType(pQuestDD->GetPrizeType(i-1)), pQuestDD->GetPrizeIndex(i-1), pQuestDD->GetSyndicateType());
					UIRectUV pUv = pImgBox->GetUV();
					pImg->setTexData( _pUIBtnTexMgr->GetTex( UIBtnExType(pImgBox->GetBtnType()), pImgBox->GetTextureID() ));					
					pImg->SetUV(pUv.U0, pUv.V0, pUv.U1, pUv.V1);
					pImg->Hide(FALSE);
				}
			}

			m_plistContent->AddListItem(plistItem);
		}

		if (pImgBox)
		{
			delete pImgBox;
			pImgBox = NULL;
		}
	}

	//선택 보상
	if(pQuestDD->IsOptionPrizeExist())
	{
		// 보상 타이틀
		plistItem = (CUIListItem*)m_pDesign->CloneTitle();

		if (plistItem != NULL)
		{
			pText = (CUIText*)plistItem->findUI("str_copytitle");

			if (pText != NULL)
				pText->SetText(pQuestDD->GetOptionPrizeDesc(0));

			m_plistContent->AddListItem(plistItem);
		}

		// 보상 아이템		
		CUIImageBox* pImgBox = new CUIImageBox;
		int Count = pQuestDD->GetCountOptionPrizeDesc();

		for( INDEX i = 1; i < Count; ++i )
		{
			plistItem = (CUIListItem*)m_pDesign->CloneListItem();

			if (plistItem == NULL)
				continue;

			// 아이템 설명
			CTString strPrize = pQuestDD->GetOptionPrizeDesc( i );
			bool bIcon = true;
			UIBtnExType eBtnType = UBET_ITEM;

			pTextBox = (CUITextBox*)plistItem->findUI("tb_copyComplete");

			if (pTextBox != NULL)
			{
				tempColor = pTextBox->GetTextColor();
				pTextBox->SetText(strPrize, tempColor, TRUE);
			}

			// 아이콘인지, 이미지 인지 결정
			switch (pQuestDD->GetOptionPrizeType(i-1) )
			{
			case QPRIZE_ITEM:
				eBtnType = UBET_ITEM;
				break;
			case QPRIZE_SKILL:
			case QPRIZE_SSKILL:
				eBtnType = UBET_SKILL;
				break;
			default:
				bIcon = false;
				break;
			}

			pIcon = (CUIIcon*)plistItem->findUI("icon_copyItem");
			pImg = (CUIImage*)plistItem->findUI("img_copyitem");

			// 아이템
			if (bIcon == true)
			{			
				if (pIcon != NULL)
				{
					pIcon->setData(eBtnType, pQuestDD->GetOptionPrizeIndex(i-1));
					pIcon->Hide(FALSE);
				}
			}
			else
			{
				if (pImg != NULL)
				{					
					pImgBox->SetImageByType(CUIImageBox::eImageType(pQuestDD->GetOptionPrizeType(i-1)), pQuestDD->GetOptionPrizeIndex(i-1), pQuestDD->GetSyndicateType());
					UIRectUV pUv = pImgBox->GetUV();
					pImg->setTexData( _pUIBtnTexMgr->GetTex( UIBtnExType(pImgBox->GetBtnType()), pImgBox->GetTextureID() ));					
					pImg->SetUV(pUv.U0, pUv.V0, pUv.U1, pUv.V1);
					pImg->Hide(FALSE);
				}
			}

			pImg = (CUIImage*)plistItem->findUI("img_selectItem");

			if (pImg != NULL)
				m_vecOptionPrize.push_back(pImg);

			CmdQuestBookPrizeItemSet* pCmd = new CmdQuestBookPrizeItemSet;
			pCmd->setData(this, i - 1);
			plistItem->SetCommandUp(pCmd);

			m_plistContent->AddListItem(plistItem);
		}

		if (pImgBox)
		{
			delete pImgBox;
			pImgBox = NULL;
		}
	}

	int nMaxItem = m_plistContent->getListItemCount();
	m_plistContent->UpdateScroll(nMaxItem);
	m_plistContent->UpdateList();

	int nShowCnt = m_plistContent->GetItemShowNum();

	if (m_plistScroll != NULL)
		m_plistScroll->SetItemsPerPage(nShowCnt);

	if (m_pbtnGiveUp != NULL)
		m_pbtnGiveUp->SetEnable(TRUE);

	if (pQuestDD->GetPrizeNPCIndex() == 0 && GAMEDATAMGR()->GetQuest()->IsCompleteQuest(pQuestDD->GetQuestIndex()))
	{
		if (m_pbtnOk != NULL)
			m_pbtnOk->SetEnable(TRUE);
	}
}
Esempio n. 18
0
int genCRFSampleCtl(const char* fileName,int isDir)
{
	static int id = 1;
	FILE *fp; // local train
	int trainOrTest;
	int refAreaStart;
	//int refAreaEnd;
	int currentOffset;
	//char *content;
	char mpredeli=' ';
        if(isDir)
        {
                printf("ignore dir:%s\n",fileName);
                return 1;
        }
	if(rand()%2) //train is 50% and test is 50%
	{
		// train
		fp = fpTrain;
		trainOrTest = 1;
	}else
	{
		// test
		fp = fpTest;
		trainOrTest = 0;
	}
	
	CNSQ preCNSQ;
	CNSQ nextCNSQ;
	clearQueue(&preCNSQ);
	clearQueue(&nextCNSQ);
	pCrfNodeSnapshot pCNS;
	
	//
        printf("[%d] %s:%s",id,(trainOrTest?"train":"test"),fileName);
        fflush(NULL);
        
        // parse tag or etc ,move data to RAM
 	initContent();
	if(!parseFile(fileName))
	{
		fprintf(stderr,"[E] error parsing file : #%s#%s\n",fileName,__FILE__);
		return 0;
	}
	
	//
	refAreaStart = getReferenceHeadOffset();
	//refAreaEnd = getReferenceEndOffset();
	currentOffset = refAreaStart;

	//make queue full
	while(ftEnQueue(&nextCNSQ,&currentOffset,&mpredeli));
	
	
	int httpStatus = 0;
	//int httpTime = 0;
	
	int quotStatus[3];//  AT/NA IN/NIN OUT/NOUT
	int quotTime = 0;
	
	int pareStatus[3];// AT/NA IN/NIN OUT/NOUT 
	int paraFlag = 0;
	
	int sqbStatus[3];// AT/NAT IN/NIN OUT/NOUT 
	int sqbFlag = 0;
	
	int braStatus[3];// AT/NAT IN/NIN OUT/NOUT
	int braFlag = 0;
	
	
	// to make sure data is like this : )<<ignore this |from here to calculate>> ((()))
	int paraCache = 0; 
	int sqbCache = 0;
	int braCache = 0;
	
	int isbnEffect = 0;

	/*
	FILE *fexp;
	char exportFileName[1024];
	for(int z=3;z<18;z++)
	{
		sprintf(exportFileName,"res/%s",id2Token(z));
		fexp = fopen(exportFileName,"a");
		fseek(fexp, 0L, SEEK_END);
		fprintf(fexp,">>%s\n",fileName);
		fflush(NULL);
		fclose(fexp);
	}
	*/
	
	
	
	while((pCNS = ftDeQueue(&nextCNSQ)) != NULL)
	{
		/*
		sprintf(exportFileName,"res/%s",id2Token(pCNS->token));
		fexp = fopen(exportFileName,"a");
		fseek(fexp, 0L, SEEK_END);
		fprintf(fexp,"%s ~ [%d]::[%d]\n",pCNS->str,pCNS->isPubliserDict,pCNS->isPlaceNameDict|| pCNS->isCountryDict);
		fflush(NULL);
		fclose(fexp);
		*/
		
		// 0. PREPARE : FLAGS
		
		
		// 0.0 PAST ONE INFO && NEXT ONE INFO
		pCrfNodeSnapshot lpCNS = pastNElem(&preCNSQ,1);  // previous one node
		pCrfNodeSnapshot npCNS = nextNElem(&nextCNSQ,1); // next one node
		
		// 0.1 TRAVERSAL ALL PAST && NEXT INFO , GET FLAGS
		int thesisFlag = 0;
		int ltdFlag = 0;
		int edsFlag = 0;
		int uniFlag = 0;
		int mitFlag = 0;
		int groupFlag = 0;
		int pressFlag = 0;
		int confFlag = 0; // conferences
		int orgFlag = 0; // organization (as,etc.)
		int labFlag = 0; // 
		int techFlag = 0;
		int repFlag = 0;
		int procFlag = 0;
		int andFlag = 0;
		//int resFlag = 0; // research
		
		int nextPDigit = 0; // next pure digit
		int domainFlag = 0;
		int domainNoStop = 1;
		int inStatus = 0;
		int i;
		int edNoStop = 1;
		
		
		
		int stopEffect = 0; // XXXX XXXX XXXX
			// 2:  ',' 
			// 1:  '.','?','!'..  
		
		// 0.1.1 NEXT 
		for(i=1;i < sizeQueue(&nextCNSQ); i++)
		{
			pCrfNodeSnapshot tCNS = (i==0)? pCNS : nextNElem(&nextCNSQ,i);
				
			
			/*
			if((tCNS->puredigit >0 || tCNS->procflag == 1) &&
				!((tCNS->slen==1)&&(tCNS->strtype == 2)) &&
				!(strcmp(tCNS->str,"and") == 0))
			{
				edNoStop = 0;
			}*/
			
			
			///////////////////////////////////////////////////////////////////////
			if(stopEffect < 2) // 0 , 1
			{
				int sw = 1+stopEffect; // stop weight 1,2
				if(tCNS->speflag == 55 ) // rep/rept == report
				{
					repFlag = sw;
				}
				if((tCNS->speflag == 50 ) // tech
					|| (tCNS->speflag == 53 ) // rfc 
					|| (tCNS->speflag == 54 )) // tr
				{
					techFlag = sw;
				}
				
				// 71: lab
				// 72: Library
				// 73: Laboratory
				// 74: Center
				// 75: institute [X?] << institute
				if(((tCNS->speflag >= 71 )&&(tCNS->speflag < 75 ))
					|| 0) // institute
				{
					labFlag = sw;
				}
				if((tCNS->speflag == 77 ) //Corporation / Co.
					|| (tCNS->speflag == 78 )) // Organiza­tion
				{
					orgFlag = sw;
				}
				
				if((tCNS->speflag == 30 ) // Press
					|| (tCNS->speflag == 31 ) // Publishing
					|| (tCNS->speflag == 32 ))  // Publisher/Pub.
				{
					pressFlag = sw;
				}
				
				if((tCNS->speflag == 90) // conference
					|| (tCNS->speflag == 79) // Journal
					|| (tCNS->speflag == 60)) // communications
				{
					confFlag = sw; // journal
				}
				
				if((tCNS->deptflag == 1)  // dept.
					||(tCNS->speflag == 56) // group
					||(tCNS->speflag == 75) //institute
					) 
				{
					groupFlag = sw; // institute
				}
				
				if(tCNS->procflag == 1) // In xxx
				{
					inStatus = sw;
				}
				if(tCNS->procflag > 1) // Proc.
				{
					procFlag = sw;
				}
				
				if(tCNS->edsflag == 1 ) edsFlag = sw;
				//if(tCNS->edsflag == 1 && edNoStop) edsFlag = sw;
				
				if(tCNS->uniflag == 1) uniFlag = sw; // un of xxx in
									// un of ... press 
				
				if(tCNS->speflag == 25) thesisFlag = sw;
				
				if(tCNS->speflag == 70) mitFlag = sw;
				
				if(tCNS->ltdflag) ltdFlag = sw;
				
				
				// name & name
				if(strcmp(tCNS->str,"and") == 0) andFlag = sw;
			}
			if(stopEffect < 1) // 0
			{
			
			}
			///////////////////////////////////////////////////////////////////////
			
			if(!isBlank(tCNS->predeli) && (tCNS->predeli !=':')
							&& (tCNS->predeli !='/')
							&& (tCNS->predeli !='.')
							&& (tCNS->predeli !=',')) // for err
			{
				domainNoStop = 0;
			}
			
			if(domainNoStop)
			{
				if((tCNS->speflag == 20 || tCNS->speflag == 21) 
					&&!isBlank(tCNS->nextdeli))
					httpStatus = 1;
				if((tCNS->speflag == 22)&&(tCNS->nextdeli !=':')) httpStatus = 1;
				if(tCNS->domainflag)
					domainFlag = 1;
			}
			
			if(tCNS->puredigit > 0 && !tCNS->yearlike) nextPDigit ++ ;
			
			// stop effect
			if(i>0)
			{
				if(tCNS->stopflag  == 1) stopEffect = (stopEffect == 2) ? 2 : 1;
				if(tCNS->stopflag  == 2) stopEffect = 2;
			}
		}
		
		// 0.1.2 PREVIOUS
		httpStatus = 0;
		int seqFlag = 0;
		
		int puredata = 1;
		
		paraFlag = 0;
		sqbFlag = 0;
		braFlag = 0;
		paraCache = 0; 
		sqbCache = 0;
		braCache = 0;
		
		stopEffect = 0;
		domainNoStop = 1;
		edNoStop = 1;
		
		// << -- | 
		for(i=0;i < sizeQueue(&preCNSQ) ; i++)
		{
			pCrfNodeSnapshot tCNS = (i==0) ? pCNS : pastNElem(&preCNSQ,i);
			
			if(i>0)
			{
				if(tCNS->stopflag  == 1) stopEffect = (stopEffect == 2) ? 2 : 1;
				if(tCNS->stopflag  == 2) stopEffect = 2;
			}
	
			if(!tCNS->puredigit && tCNS->strtype!=4) puredata = 0;
			if( puredata && tCNS->speflag == 40) isbnEffect = 1;
				
			if(!isBlank(tCNS->predeli) && (tCNS->predeli !=':')
							&& (tCNS->predeli !='/')
							&& (tCNS->predeli !='.')
							&& (tCNS->predeli !=',')) // for err
			{
				domainNoStop = 0;
			}
			
				
			
			if(domainNoStop)
			{
				if((tCNS->speflag == 20 || tCNS->speflag == 21) 
					&&!isBlank(tCNS->nextdeli))
					httpStatus = 2;
				if((tCNS->speflag == 22)&&(tCNS->nextdeli !=':')) httpStatus = 2;
			}
	
			
			////////////////////////////////////////////////////////////////////
			
			
			if(stopEffect < 2) // 0 , 1
			{
				int sw = 3+stopEffect; // stop weight 3,4
				
				if(tCNS->speflag == 55 ) // rep/rept == report
				{
					repFlag = sw;
				}
				if((tCNS->speflag == 50 ) // tech
					|| (tCNS->speflag == 53 ) // rfc 
					|| (tCNS->speflag == 54 )) // tr
				{
					techFlag = sw;
				}
				
				// 71: lab
				// 72: Library
				// 73: Laboratory
				// 74: Center
				// 75: institute [X?]
				if(((tCNS->speflag >= 71 )&&(tCNS->speflag < 75 ))
					|| 0) // institute
				{
					labFlag = sw;
				}
				if((tCNS->speflag == 77 ) //Corporation / Co.
					|| (tCNS->speflag == 78 )) // Organiza­tion
				{
					orgFlag = sw;
				}
				
				if((tCNS->speflag == 30 ) // Press
					|| (tCNS->speflag == 31 ) // Publishing
					|| (tCNS->speflag == 32 ))  // Publisher/Pub.
				{
					pressFlag = sw;
				}
				
				if((tCNS->speflag == 90) // conference
					|| (tCNS->speflag == 79) // Journal
					|| (tCNS->speflag == 60)) // communications
				{
					confFlag = sw; // journal
				}
				
				if((tCNS->deptflag == 1)  // dept.
					||(tCNS->speflag == 56) // group
					||(tCNS->speflag == 75) //institute
					) 
				{
					groupFlag = sw; // institute
				}
				
				if(tCNS->procflag == 1) // In xxx
				{
					inStatus = sw;
				}
				
				if(tCNS->edsflag == 1  && edNoStop) edsFlag = sw;
				//if(tCNS->edsflag == 1 ) edsFlag = sw;
				
				if(tCNS->uniflag == 1) uniFlag = sw; // un of xxx in
									// un of ... press 
			
				if(tCNS->procflag > 1) // Proc.
				{
					procFlag = sw;
				}
				
				if(tCNS->speflag == 25) thesisFlag = sw;
				
				if(tCNS->speflag == 70) mitFlag = sw;
				
				if(tCNS->ltdflag) ltdFlag = sw;
				
				if((strcmp(tCNS->str,"and") == 0) && (i < 2)) 
					andFlag = sw;
			}
			if(stopEffect < 1) // 0
			{
			
			}
			
			////////////////////////////////////////////////////////////////////		

			
			// couple delimiter
			if(tCNS->pareEflag) paraCache++;
			if(tCNS->pareSflag)
			{
				paraFlag = paraFlag + 1 - paraCache;
				paraCache = 0;
			}
			if(tCNS->sqbEflag) sqbCache++;
			if(tCNS->sqbSflag)
			{
				sqbFlag = sqbFlag + 1 - sqbCache;
				sqbCache = 0;
			}
			if(tCNS->braEflag) braCache++;
			if(tCNS->braSflag)
			{
				braFlag = braFlag + 1 - braCache;
				braCache = 0;
			}
			
			if(i<3 && tCNS->sqbEflag)
			{
				seqFlag = 1;
			}
			
			
			////////////////END STOP//////////////////////
			if(tCNS->puredigit == 2 )
			{
				edNoStop = 0;
			}
			// [In] xxx
			if(tCNS->procflag == 1) edNoStop = 0;
		}

		pareStatus[0] = paraFlag > 0 ;
		sqbStatus[0] = sqbFlag > 0;
		braStatus[0] = braFlag > 0;

		
		
		
		// 0.2 SOME MIX FEATURE
		// \"
		quotTime--;
		
		if(quotTime <= 0)
		{
			quotStatus[0] = 0;
			quotTime = 0;
		}else
		{
			quotStatus[0] = 1;
		}
		quotStatus[1] = 0;
		quotStatus[2] = 0;
		if(pCNS->quotflag%2 == 1)
		{
			quotStatus[0] = !quotStatus[0];
			if(quotStatus[0])
				quotTime = 10;
			else
				quotTime = -10;
		}else if(pCNS->quotflag > 0 && pCNS->quotflag%2 == 0)
		{
			quotStatus[1] = quotStatus[2] = 1;
			quotTime = 0;
		}
		if(quotTime == 10) quotStatus[1] =  1;
		else if(quotTime == -10) quotStatus[2] = 1;
		//((quotTime==10||quotTime==-10)?(quotStatus?"IN":"OUT"):(quotStatus?"AT":"NA"))
		
		
		//////////////////////////////////////////////////////////////////////
		
		pareStatus[1] = pareStatus[2] = 0;
		// para
		if(pCNS->pareSflag == 1)
		{
			pareStatus[1] = 1;
		}
		if(pCNS->pareEflag == 1)
		{
			pareStatus[2] = 1;
		}
		
		//////////////////////////////////////////////////////////////////////
		// sqb
		sqbStatus[1] = sqbStatus[2] = 0;
		if(pCNS->sqbSflag == 1)
		{
			sqbStatus[1] = 1;
		}
		
		if(pCNS->sqbEflag == 1)
		{
			sqbStatus[2] = 1;
		}
		
		
		//////////////////////////////////////////////////////////////////////
		// bra
		braStatus[1] = braStatus[2] = 0;
		if(pCNS->braSflag == 1)
		{
			braStatus[1] = 1;
		}
		
		if(pCNS->braEflag == 1)
		{
			braStatus[2] = 1;
		}
		
		// xxxx ( abcd )  or xxxx , (abcd)
		// in template
		int contentConnect = 0;
		if(pareStatus[0] == 1)
		{
			for(i=1;i < sizeQueue(&preCNSQ) ; i++)
			{
				pCrfNodeSnapshot tCNS = pastNElem(&preCNSQ,i);
				if(tCNS->predeli == '(')
				{
					tCNS = pastNElem(&preCNSQ,i+1);
					if(tCNS->nextdeli == '(') contentConnect = 1;
					break;
				}
			}
		}
		
		
		// combined string , combine with next string
		char combinedStr[1024];
		sprintf(combinedStr,"%s%s",pCNS->str,((npCNS==NULL)?"":npCNS->str));
		
		
		// 1. OUTPUT : PRINT FEATURES
		
		// basic
		// 0: string data
		fprintf(fp,"%s\t",pCNS->str); 
		
		// 1: length of string data 0,1,2,3,4,5,6 >6
		//fprintf(fp,"串长/");
		fprintf(fp,"%d\t",pCNS->slen<7?pCNS->slen:9); 

		
		// base::string
		// 2: string type 0:AAA 1:aaa 2:Aaa 3:aAa 4:123
		//fprintf(fp,"类型/");
		fprintf(fp,"%d\t",pCNS->strtype);
		
		// 3: prefix 
		//fprintf(fp,"前缀/");
		fprintf(fp,"%c/%c\t",tolower(pCNS->str[0]),(pCNS->slen>1)?tolower(pCNS->str[1]):'X');
		
		// 4: sufix 
		//fprintf(fp,"后缀/");
		fprintf(fp,"%c/%c\t",(pCNS->slen>1)?tolower(pCNS->str[pCNS->slen-2]):'X',
					tolower(pCNS->str[pCNS->slen-1]));
		
		
		// base::digit
		// 5: digit value  > 0 ?
		//fprintf(fp,"数值/");
		fprintf(fp,"%d\t",pCNS->dval > 0 );
		
		// 6: digit bigger than previours one
		//fprintf(fp,"比前值长/");
		fprintf(fp,"%d\t",lpCNS==NULL?-1:(lpCNS->dval == 0?-1:(pCNS->dval > lpCNS->dval)));
		
		// 7: next one is bigger than this digit 
		//fprintf(fp,"比后值短/");
		fprintf(fp,"%d\t",npCNS==NULL?-1:(npCNS->dval == 0?-1:(npCNS->dval > pCNS->dval)));
		
		// 8: digit a improve digit ? 123456 456 > 123
		//fprintf(fp,"升数/");
		fprintf(fp,"%d\t",pCNS->imprnum );
		
		// 9: is pure digit ? see 'I' 'l' 'O' etc. as digit
		//fprintf(fp,"纯数/");
		fprintf(fp,"%d\t",pCNS->puredigit);
		
		
		// base::delimiter
		// 10: last delimiter
		//fprintf(fp,"前分隔符/");
		fprintf(fp,"%d\t",pCNS->predeli);
		
		// 11: last useful delimiter
		//fprintf(fp,"前有用分隔符/");
		fprintf(fp,"%d\t",pCNS->mpredeli);
		
		// 12: next delimiter
		//fprintf(fp,"后分隔符/");
		fprintf(fp,"%d\t",pCNS->nextdeli);
		
		
		
		// base::string orthographic
		// 13: year like || month like >> time like
		//fprintf(fp,"似年/");
		fprintf(fp,"%d\t",(pCNS->yearlike > 0 )|| (pCNS->monthlike > 0 ));
		// 14: volume like  start of volume ?  vol. X num. no. number
		//fprintf(fp,"似卷/");
		if(pCNS->volumnlike < 3) fprintf(fp,"%d\t",pCNS->volumnlike);
		else if(!isBlank(pCNS->nextdeli)) fprintf(fp,"%d\t",pCNS->volumnlike-2);
		else fprintf(fp,"0\t");
			
		// 15: page like
		//fprintf(fp,"似页/");
		fprintf(fp,"%d\t",pCNS->pagelike);

		
		// base::dict
		// 16: name in dict
		//fprintf(fp,"字典/名/");
		fprintf(fp,"%d\t",pCNS->isNameDict || pCNS->rLastNameDict > 0);
		
		// 17: place in dict
		pCNS->isPlaceNameDict = pCNS->isPlaceNameDict || isPlaceNameInDict(combinedStr);		
		pCNS->isCountryDict = pCNS->isCountryDict || isCountryInDict(combinedStr);
		
		//fprintf(fp,"字典/地/");
		fprintf(fp,"%d\t",pCNS->isPlaceNameDict>0 || pCNS->isCountryDict > 0);
		
		// 18: publisher in dict
		pCNS->isPubliserDict = pCNS->isPubliserDict || isPublisherInDict(combinedStr);
		//fprintf(fp,"字典/出版社/");
		fprintf(fp,"%d\t",pCNS->isPubliserDict);
		
		// 19: fun word in dict 
		//fprintf(fp,"字典/功能词汇/");
		fprintf(fp,"%d\t",pCNS->isFunWordDict);

		// base::couple flag ststus
		
		// 20,21,22 quots AT IN OUT
		//fprintf(fp,"引号123/");
		fprintf(fp,"%d\t",quotStatus[0]);
		fprintf(fp,"%d\t",quotStatus[1]);
		fprintf(fp,"%d\t",quotStatus[2]);
		
		
		// 23,24,25 Parentheses AT IN OUT
		//fprintf(fp,"花括号123/");
		fprintf(fp,"%d\t",pareStatus[0]);
		fprintf(fp,"%d\t",pareStatus[1]);
		fprintf(fp,"%d\t",pareStatus[2]);
		
		// 26,27,28 Square brackets AT IN OUT
		//fprintf(fp,"方括号123/");
		fprintf(fp,"%d\t",sqbStatus[0]);
		fprintf(fp,"%d\t",sqbStatus[1]);
		fprintf(fp,"%d\t",sqbStatus[2]);
		
		// 29,30,31 Braces AT IN OUT
		//fprintf(fp,"括号123/");
		fprintf(fp,"%d\t",braStatus[0]);
		fprintf(fp,"%d\t",braStatus[1]);
		fprintf(fp,"%d\t",braStatus[2]);
		
		// base::flags
		
		// 32 basic flags
		// special flag (mixed)
		//fprintf(fp,"特殊标记/");
		fprintf(fp,"%d\t",pCNS->speflag);
		
		// 33 stop flag  && effect
		//fprintf(fp,"停止/括号1/2/3/");  
		fprintf(fp,"%d/%d/%d/%d\t",pCNS->stopflag,
					(quotStatus[0]||pareStatus[0]||sqbStatus[0]||braStatus[0]),
					(quotStatus[1]||pareStatus[1]||sqbStatus[1]||braStatus[1]),
					(quotStatus[2]||pareStatus[2]||sqbStatus[2]||braStatus[2]));
		
		// 34 eds flag
		//fprintf(fp,"编辑标记/");
		fprintf(fp,"%d\t",edsFlag);
		
		// 35: name like
		//fprintf(fp,"似名/");
		fprintf(fp,"%d\t",pCNS->namelike);
		
		
		// extend::flags effect
		// 36 number of next pure digit
		//fprintf(fp,"后面数字个数/journal/");
		fprintf(fp,"%d\t",nextPDigit);
		
		
		// 37 http effect  domain
		//fprintf(fp,"HTTP态/");
		//fprintf(fp,"DOMAIN态/");
		fprintf(fp,"%d/%d\t",httpStatus,domainFlag);
		
		// extend::mix effect
		// 38 [abc def] author @ abc
		//fprintf(fp,"组合顺序/前/");
		if(pCNS->mpredeli == '[' && npCNS != NULL)
		{
			if(npCNS->nextdeli == ']') fprintf(fp,"1\t");
			else fprintf(fp,"0\t");
		}else
			fprintf(fp,"0\t");
		
		// [abc def] author @ def
		// 39
		//fprintf(fp,"组合顺序/后/");
		if(pCNS->nextdeli == ']' && seqFlag == 1)
		{
			fprintf(fp,"1\t");
		}else
			fprintf(fp,"0\t");
		

		// 40 article xxxx, A process of ...
		//fprintf(fp,"AAnTheOn/终/");
		fprintf(fp,"%d/%d\t",pCNS->isArticle,pCNS->stopflag);
		
		// 41 tech
		//fprintf(fp,"TECH/");
		int phdflag = 0;
		if((strcasecmp("ph",pCNS->str)== 0 && npCNS->str[0] == 'D')
			|| strcasecmp("phD",pCNS->str)== 0)
			phdflag = 1;
		else
			phdflag = 0;

		fprintf(fp,"%d\t",phdflag);
		
		// 42 xxx thesis thesis : 25
		//fprintf(fp,"Thesis/");
		fprintf(fp,"%d\t",thesisFlag);
		
		// 43 inc ltd limited  : ltdflag 1 2 3
		//fprintf(fp,"Inc/Ltd/Limit/");
		fprintf(fp,"%d\t",ltdFlag);
		
		// 44 45 46 ACM / ICPC / IEEE
		//fprintf(fp,"ACM/ICPC/IEEE/");
		fprintf(fp,"%d\t",pCNS->speflag == 1); // ISO
		fprintf(fp,"%d\t",pCNS->speflag == 2); // IEEE
		fprintf(fp,"%d\t",pCNS->speflag == 3); // ACM
		
		// 47 CNAC AECSA SRCD ... // contain C
		//fprintf(fp,"CONF/"); 
		//fprintf(fp,"%d\t",pCNS->strtype == 0 &&  pCNS->slen < 6 && pCNS->slen > 2);
		fprintf(fp,"%d\t",conferencelike(pCNS->str,pCNS->slen));
		
		
		// 48 technical report
		//fprintf(fp,"TR/");
		fprintf(fp,"%d\t",techFlag || phdflag || repFlag);
		//fprintf(fp,"%d/\t",repFlag);
		
		
		// 49 MIT
		//fprintf(fp,"MIT/");
		fprintf(fp,"%d\t",mitFlag);
		
		// 50 51 52 university of 
		//fprintf(fp,"学校/");
		fprintf(fp,"%d\t",pCNS->uniflag);
		
		//fprintf(fp,"学校/影响/");
		fprintf(fp,"%d\t",uniFlag);
		
		//fprintf(fp,"%d/%d\t",pCNS->predeli,pCNS->uniflag);
		//fprintf(fp,"终止/前一个/学校/");
		fprintf(fp,"%d/%d\t",lpCNS == NULL ? 3 : lpCNS->stopflag,pCNS->uniflag);
		
		// (August 1-2 2013)
		// how about ?
		
		// 53 xxxx , (adfadf) or xxxx (adfasf)
		//fprintf(fp,"逗号隔开/");
		fprintf(fp,"%d\t",contentConnect);
		
		// rfc || request (in tr) 
		//fprintf(fp,"%d\t",rfc);
		
		// 54 55 56 57 58 59 in proceedings of
		// 54
		//fprintf(fp,"In/点/");
		fprintf(fp,"%d\t",pCNS->procflag == 1); // In point
		// 55
		//fprintf(fp,"In点/名字/");
		fprintf(fp,"%d\t",(pCNS->procflag == 1) && 
				((npCNS->namelike)||(npCNS->isNameDict )
					|| (npCNS->rLastNameDict > 0)));
		// 56
		//fprintf(fp,"In/状态/");
		fprintf(fp,"%d\t",inStatus);
		// 57
		//fprintf(fp,"In/状态/名字/");
		fprintf(fp,"%d\t",inStatus && ((pCNS->namelike)||(pCNS->isNameDict ) || (pCNS->rLastNameDict > 0)));
		
		// 58
		//fprintf(fp,"In/Proc/状态/");
		fprintf(fp,"%d\t",(pCNS->procflag == 1) || procFlag);
		// 59
		//fprintf(fp,"Proc/状态/");
		fprintf(fp,"%d\t",procFlag);
		
		// 60  department of / dept. of
		//fprintf(fp,"Dept/点/"); 
		fprintf(fp,"%d\t",pCNS->deptflag);
		
		// 61 press
		//fprintf(fp,"出版社状态/");
		fprintf(fp,"%d\t",pressFlag);
		
		
		// 62 conf / journal  
		//fprintf(fp,"似期刊/");
		fprintf(fp,"%d\t",confFlag);

		
		// 63 org
		//fprintf(fp,"组织|实验室/");
		fprintf(fp,"%d\t",orgFlag || labFlag);
		
		// 64 group
		//fprintf(fp,"小组/");
		fprintf(fp,"%d\t",groupFlag);
		
		// 65 lib ins/pub
		//fprintf(fp,"实验室/");
		fprintf(fp,"%d\t",labFlag);
		
		// 66 isbn
		//fprintf(fp,"ISBN/状态/");
		fprintf(fp,"%d\t",isbnEffect);
		
		// 67 group lab or dept
		//fprintf(fp,"机构||/");
		fprintf(fp,"%d\t",labFlag > 0 || groupFlag > 0 || uniFlag > 0);
		
		
		// 68 eds point
		//fprintf(fp,"编辑/点/下个分隔符/");
		fprintf(fp,"%d/%d\t",pCNS->edsflag,pCNS->nextdeli);// 
		
		
		// 69
		//fprintf(fp,"出版社名/机构&出版社/");
		fprintf(fp,"%d/%d\t",pCNS->isPubliserDict,
				pressFlag &&(labFlag > 0 || groupFlag > 0 || uniFlag > 0) ); 
				// university , 
		
		
		// 70 et , al
		//fprintf(fp,"et/al/");
		if(lpCNS != NULL && npCNS != NULL)
		{
			if((strcmp(lpCNS->str,"et")==0) && (strcmp(pCNS->str,"al")==0))
				fprintf(fp,"1\t");
			else if((strcmp(pCNS->str,"et")==0) && (strcmp(npCNS->str,"al")==0))
				fprintf(fp,"2\t");
			else 
				fprintf(fp,"0\t");
		}else
			fprintf(fp,"0\t");
		
		
		
		// 71
		// jump to note : Available ... Submitted Submitted to 
		//Unpublished Published as
		//fprintf(fp,"其他/");
		if(lpCNS != NULL && npCNS != NULL)
		{
			if ( (strcmp(pCNS->str,"Available") == 0)
				|| ((strcmp(pCNS->str,"Submitted")== 0)&&(strcmp(npCNS->str,"to")))
				|| (strcmp(pCNS->str,"Unpublished")== 0)
				|| (strcmp(pCNS->str,"Published")== 0)
				|| ((strcmp(pCNS->str,"To")== 0) 
					&& (strcmp(npCNS->str,"appear")== 0))
				)
			{
				fprintf(fp,"1\t");
			}else
				fprintf(fp,"0\t");
			
		}else
			fprintf(fp,"0\t");
		// note start
		
		
		// 72 and
		//fprintf(fp,"和/");
		fprintf(fp,"%d\t",andFlag);
	
		// 73 endSign
		//fprintf(fp,"终止/");
		fprintf(fp,"%d\t",pCNS->stopflag);

	
		// 2. END : PRINT RESULT
		if(lpCNS != NULL && npCNS != NULL)
		{
			if((lpCNS->token == 3 && npCNS->token == 3) || 
				(lpCNS->token == 6 && npCNS->token == 6))
				fprintf(fp,"%s\n",id2Token(lpCNS->token));
			else
				fprintf(fp,"%s\n",pCNS->token == 0 ? "other":id2Token(pCNS->token));	
		}else
			fprintf(fp,"%s\n",pCNS->token == 0 ? "other":id2Token(pCNS->token));
		
		//enQueue && store
		enQueueWithDrop(&preCNSQ,*pCNS);
		ftEnQueue(&nextCNSQ,&currentOffset,&mpredeli);
	}
	
	//
	id++;
        cleanContent();
        printf(" ok\n");
        return 1;
}