int main() { printf("Enter string 1: "); char string[128]; scanf("%[^\n]s", string); int length = strlen(string); int ary[ASCII_LENGTH] = { 0 }; int charIndex; for (charIndex = 0; charIndex < length; charIndex++) { ary[(unsigned char) string[charIndex]]++; } printf("\nFREQUENCY TABLE\n"); printf("---------------\n"); printf("Char Count %% of Total\n"); printf("---- ----- ----------\n"); printf("ALL %i %.2f%%\n", length, getPercent(length, length)); char done[ASCII_LENGTH]; for (charIndex = 0; charIndex < length; charIndex++) { unsigned char c = string[charIndex]; if (!in(c, done, ASCII_LENGTH)) { int count = ary[c]; printf("\"%c\" %i %.2f%%\n", c, count, getPercent(count, length)); done[charIndex] = c; } } return 0; }
void GameScene::resumeGame(float dt) { auto UIComponent = (cocostudio::ComRender*) UINode->getComponent("gameSceneUI"); auto UILayer = (Layer*)UIComponent->getNode(); auto loadingBar = dynamic_cast<LoadingBar*>(UILayer->getChildByTag(GAMESCENE_LOADINGBAR)); auto labelCombo = dynamic_cast<Text*>(UILayer->getChildByTag(GAMESCENE_LABEL_COMBO)); static int calledtime = 0; loadingBar->setPercent(calledtime++); if (loadingBar->getPercent() == 1) { labelCombo->setString("READY"); labelCombo->setOpacity(255); } if (loadingBar->getPercent() == 50) labelCombo->runAction(FadeOut::create(1)); if (loadingBar->getPercent() == 100) { this->unscheduleAllSelectors(); calledtime = 0; labelCombo->setString(""); labelCombo->setOpacity(100); for (auto&i : UINode->getChildren()) { i->resume(); for (auto&j : i->getChildren()) j->resume(); } AudioEngine::getInstance()->resume(); this->scheduleUpdate(); } }
void IliadDrawArea::getSize(int iW, int iH, int &oW, int &oH) { int imageW = iW; int imageH = iH; int x; int resampleW; int resampleH; int a = getPercent(imageH, aHeight); int b = getPercent(imageW, aWidth); if (a > b) x = b; else x = a; resampleW = imageW + (imageW * x / 100); resampleH = imageH + (imageH * x / 100); oW = resampleW; oH = resampleH; PV_LOGPRINTF("resampleW = %d", resampleW); PV_LOGPRINTF("resampleH = %d", resampleH); }
void AMDeadTimeButton::updateColorState() { ColorState newState = AMToolButton::None; if (hasDeadTimeSources() || hasICRDataSource()) { // Identify the value used for color state comparison. double newValue = badReferencePoint_; if (countsMode_ == Percent && canDisplayPercentage()) newValue = getPercent(); else if (countsMode_ == Counts && canDisplayCounts()) newValue = getCounts(); else if (countsMode_ == CountRate && canDisplayCountRate()) newValue = getCountRate(); // Identify the new color state. if (newValue < goodReferencePoint_) newState = AMToolButton::Good; else if (newValue >= goodReferencePoint_ && newValue < badReferencePoint_) newState = AMToolButton::Neutral; else newState = AMToolButton::Bad; } setColorState(newState); }
STDMETHODIMP ProgressWrap::COMGETTER(Percent)(ULONG *aPercent) { LogRelFlow(("{%p} %s: enter aPercent=%p\n", this, "Progress::getPercent", aPercent)); VirtualBoxBase::clearError(); HRESULT hrc; try { CheckComArgOutPointerValidThrow(aPercent); AutoCaller autoCaller(this); if (FAILED(autoCaller.rc())) throw autoCaller.rc(); hrc = getPercent(aPercent); } catch (HRESULT hrc2) { hrc = hrc2; } catch (...) { hrc = VirtualBoxBase::handleUnexpectedExceptions(this, RT_SRC_POS); } LogRelFlow(("{%p} %s: leave *aPercent=%RU32 hrc=%Rhrc\n", this, "Progress::getPercent", *aPercent, hrc)); return hrc; }
void AMDeadTimeButton::updateToolTip() { QString toolTip = ""; // Add the index, if we can display index information. if (canDisplayIndex()) toolTip.append(QString("%1").arg(index_)); // Add separator, if needed. if (canDisplayIndex() && isEnabled() && (canDisplayPercentage() || canDisplayCounts() || canDisplayCountRate())) toolTip.append(": "); // Add the counts information. if (countsMode_ == Percent && canDisplayPercentage()) toolTip.append(QString("%1%").arg(getPercent(), 0, 'f', 0)); else if (countsMode_ == Counts && canDisplayCounts()) toolTip.append(QString("%1 counts").arg(getCounts())); else if (countsMode_ == CountRate && canDisplayCountRate()) toolTip.append(QString("%1 counts/s").arg(getCountRate())); setToolTip(toolTip); }
void Load::LoadingBar(float dt) { auto size = Director::getInstance()->getVisibleSize(); auto lb = dynamic_cast<class LoadingBar*>(getChildByTag(1)); float per = lb->getPercent() + 1.0f; lb->setPercent(per); //图片加载 auto load = Sprite::create("load.png"); load->setPosition(Vec2(size.width/2-150,size.height/2+60)); auto moveTo = MoveTo::create(0.6,Vec2( size.width/2+130,size.height/2+60)); auto seq = Sequence::create(moveTo, NULL); load->runAction(seq); addChild(load); if (per==100) { unschedule("LoadingBar"); auto callf=CallFunc::create([this](){ Director::getInstance()->replaceScene(GameScene::createScene()); }); auto seq=Sequence::create(DelayTime::create(1.1), callf,NULL); this->runAction(seq); } }
void PageTest::sliderEvent(Ref *pSender, ui::Slider::EventType type) { if (type == ui::Slider::EventType::ON_PERCENTAGE_CHANGED) { auto slider = dynamic_cast<ui::Slider*>(pSender); CCLOG("sliderEvent:%d", slider->getPercent()); } }
void awardChallengeTrophies(void) { char trophyId[MAX_NAME_LENGTH]; int completed; /* check % of challenges completed - 25% increments*/ completed = (getPercent(game.completedChallenges, game.totalChallenges) / 25) * 25; sprintf(trophyId, "CHALLENGE_%d", completed); awardTrophy(trophyId); }
void GameScene::startGame(float dt) { auto UIComponent = (cocostudio::ComRender*) UINode->getComponent("gameSceneUI"); auto UILayer = (Layer*)UIComponent->getNode(); auto loadingBar = dynamic_cast<LoadingBar*>(UILayer->getChildByTag(GAMESCENE_LOADINGBAR)); auto labelCombo = dynamic_cast<Text*>(UILayer->getChildByTag(GAMESCENE_LABEL_COMBO)); auto buttonPause = dynamic_cast<Button*>(UILayer->getChildByTag(GAMESCENE_BUTTON_PAUSE)); loadingBar->setPercent(loadingBar->getPercent() + 1); if (loadingBar->getPercent() == 50) labelCombo->runAction(FadeOut::create(1)); if (loadingBar->getPercent() == 100) { this->unscheduleAllSelectors(); labelCombo->setString(""); labelCombo->setOpacity(100); AudioEngine::getInstance()->play(); this->scheduleUpdate(); buttonPause->setTouchEnabled(true); } }
void GlMenuSampler::rollOut(QPainter *p) { int per = getPercent(); int angle = int((per/100.) * 90); if(per < 0 || per > 100) return; buttonMain->drawImageAt(p, angle, per); buttonPlayer->drawImageAt(p, angle, per); listWidget->drawImageAt(p, angle, per); }
void GlMenuGenre::rollIn(QPainter *p) { int per = getPercent(); int angle = int((per/100.)* -90); if(per < 0 || per > 100) return; qDebug() << QString("%1").arg(per); buttonMain->drawImageAt(p, angle, per); buttonPlayer->drawImageAt(p, angle, per); listWidget->drawImageAt(p, angle, per); }
void GlMenuSampler::rollIn(QPainter *p) { /*Alle Kindobjekte werden eingerollt*/ int per = getPercent(); int angle = int((per/100.)* -90); if(per < 0 || per > 100) return; buttonMain->drawImageAt(p, angle, per); buttonPlayer->drawImageAt(p, angle, per); listWidget->drawImageAt(p, angle, per); }
ArrayElement* ToDo::clone() { ToDo* ret = new ToDo(); if (getClass()) ret->setClass(*classEvent); if (getCompleted()) ret->setCompleted(*completed); if (getCreated()) ret->setCreated(*created); if (getDescription()) ret->setDescription(*description); if (getDtStamp()) ret->setDtStamp(*dtStamp); if (getDtStart()) ret->setDtStart(*dtStart); if (getGeo()) ret->setGeo(*geo); if (getLastMod()) ret->setLastMod(*lastMod); if (getLocation()) ret->setLocation(*location); if (getOrganizer()) ret->setOrganizer(*organizer); if (getPercent()) ret->setPercent(*percent); if (getPriority()) ret->setPriority(*priority); if (getRecurID()) ret->setRecurID(*recurID); if (getSequence()) ret->setSequence(*seq); if (getStatus()) ret->setStatus(*status); if (getSummary()) ret->setSummary(*summary); if (getUid()) ret->setUid(*uid); if (getUrl()) ret->setUrl(*url); if (getDue()) ret->setDue(*due); if (getDuration()) ret->setDuration(*duration); if (getAttach()) ret->setAttach(*attach); if (getAttendee()) ret->setAttendee(*attendee); if (getCategories()) ret->setCategories(*categories); if (getComment()) ret->setComment(*comment); if (getContact()) ret->setContact(*contact); if (getExDate()) ret->setExDate(*exDate); if (getExRule()) ret->setExRule(*exRule); if (getRStatus()) ret->setRStatus(*rStatus); if (getRelated()) ret->setRelated(*related); if (getResources()) ret->setResources(*resources); if (getRDate()) ret->setRDate(*rDate); if (getRRule()) ret->setRRule(*rRule); if (getXProp()) ret->setXProp(*xProp); return ret; }
void Map::mapMove(GameScene* parent,Role* role){ for(int i = 0;i < map->count();i++){ CCSprite* m = (CCSprite*)map->objectAtIndex(i); if(i == 0){ //第二大关卡开始,结束玩家飞行状态 if(role->getState() == Role::FLY){ if(m->getPositionX() > 0 && m->getTag() < 7 && m->getPositionX() <= Role::POSX){ role->nextLevel(); speed += 0.5; //每一关增加0.5速 度 parent->addSpeed(0.5); startCur = true; } } } if(m->getPositionX() > 854){ m->setVisible(false); } if(m->getPositionX()+m->getContentSize().width>= 0){ float x = m->getPositionX(); float y = m->getPositionY(); if(mapUp){ if(m->getTag() >= 7 ){ switch(m->getTag()){ case 7: if(y<-55){ y+=getSpeed() / 1.5f; } break; case 8: if(y < -75){ y+=getSpeed() / 1.5f; } break; case 9: if(y < -70){ y+=getSpeed() / 1.5f; } break; } }else{ if( y < 0){ y += getSpeed(); } } x -= getSpeed() / 1.5f; }else{ x -= getSpeed(); } //一关结束的地图向上移动 if(!mapUp && i >= map->count() - 3){ if(m->getPositionX() + 100 < 200){ mapUp = true; role->setProtect(true); } } m->setPosition(ccp(x,y)); if(m->getPositionX() < 854 && m->getPositionX() + m->getContentSize().width > 0){ m->setVisible(true); if(startCur && m->getTag() == 9 && m->getPositionX()< role->getPositionX() - role->getContentSize().width){ role->fly(true); startCur = false; } } }else{ } } CCSprite* last = (CCSprite*)map->lastObject(); if(last->getPositionX() + last->getContentSize().width <= 0 ){ for(int i = 0;i < map->count();i++){ parent->removeChild((CCSprite*)map->objectAtIndex(i),true); } map->removeAllObjects(); resetMap(curLevel + 1,parent); } if(startCur){ parent->setProgress(getPercent()); curDis += getSpeed(); } }
double Scrollbar::getScrollerPercent() { return getPercent(ypos + getScrollerLength() / 2 + WIDTH, scrollPos, ypos - getScrollerLength() / 2 + pxLength - WIDTH); }
void GlPictureFlow::draw_backward(QPainter* p) { QPoint point; int dist; int i; int angle; int size; QFont font = p->font(); font.setPixelSize(20); font.setBold(true); p->setFont(font); p->setPen(QColor(255,255,255,125)); p->drawText(QRect(0,0,getWidth(),30),Qt::AlignHCenter,alben.at(centerImage)); centerAlbum = alben.at(centerImage); i = centerImage - 5; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distShort)); point.setX(pt0.x() + dist); point.setY(pt0.y()); size = int((getPercent()/100.) * (sizeSmall)); t_drawImageAt(p, point, images.at(i), size,size*1.5,-50,0); } i = centerImage - 4; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distShort)); point.setX(pt1.x() + dist); point.setY(pt1.y()); t_drawImageAt(p, point, images.at(i), sizeSmall, sizeSmall*1.5,-50,0); } i = centerImage - 3; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distShort)); point.setX(pt2.x() + dist); point.setY(pt2.y()); t_drawImageAt(p, point, images.at(i), sizeSmall, sizeSmall*1.5,-50,0); } i = centerImage -2; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distShort)); point.setX(pt3.x() + dist); point.setY(pt3.y()); t_drawImageAt(p, point, images.at(i), sizeSmall, sizeSmall*1.5,-50,0); } i = centerImage - 1; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distLong)); point.setX(pt4.x() + dist); point.setY(pt4.y()); size = int((getPercent()/100.) * (sizeBig - sizeSmall)) + sizeSmall; angle = -50 + int((getPercent()/100.) * 50); t_drawImageAt(p, point, images.at(i), size,size*1.5,angle,0); } i = centerImage + 4; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distShort)); point.setX(pt7.x() + dist); point.setY(pt7.y()); size = sizeSmall - int((getPercent()/100.) * (sizeSmall)); t_drawImageAt(p, point, images.at(i), size,size*1.5,50,0); } i = centerImage + 3; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distShort)); point.setX(pt8.x() + dist); point.setY(pt8.y()); t_drawImageAt(p, point, images.at(i), sizeSmall, sizeSmall*1.5,50,0); } i = centerImage + 2; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distShort)); point.setX(pt9.x() + dist); point.setY(pt9.y()); t_drawImageAt(p, point, images.at(i), sizeSmall, sizeSmall*1.5,50,0); } i = centerImage + 1; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distShort)); point.setX(pt10.x() + dist); point.setY(pt10.y()); t_drawImageAt(p, point, images.at(i), sizeSmall, sizeSmall*1.5,50,0); } i = centerImage; if(i > -1 && i < images.size()) { dist = int((getPercent()/100.) * (distLong)); point.setX(pt11.x() + dist); point.setY(pt11.y()); angle = int((getPercent()/100.) * (50)); size = int((getPercent()/100.) * (sizeSmall - sizeBig)) + sizeBig; t_drawImageAt(p, point, images.at(i), size,size*1.5,angle,0); } }
int main (int argc, char *argv []) { int percent ; int ring, leg ; // Always initialise wiringPi: // Use the Sys method if you don't need to run as root wiringPiSetupSys () ; // Initialise the piGlow devLib piGlowSetup (FALSE) ; if (argc == 1) failUsage () ; if ((argc == 2) && (strcasecmp (argv [1], "off") == 0)) { for (leg = 0 ; leg < 3 ; ++leg) piGlowLeg (leg, 0) ; return 0 ; } if (argc == 3) { percent = getPercent (argv [2]) ; /**/ if (strcasecmp (argv [1], "red") == 0) piGlowRing (PIGLOW_RED, percent) ; else if (strcasecmp (argv [1], "yellow") == 0) piGlowRing (PIGLOW_YELLOW, percent) ; else if (strcasecmp (argv [1], "orange") == 0) piGlowRing (PIGLOW_ORANGE, percent) ; else if (strcasecmp (argv [1], "green") == 0) piGlowRing (PIGLOW_GREEN, percent) ; else if (strcasecmp (argv [1], "blue") == 0) piGlowRing (PIGLOW_BLUE, percent) ; else if (strcasecmp (argv [1], "white") == 0) piGlowRing (PIGLOW_WHITE, percent) ; else if (strcasecmp (argv [1], "all") == 0) for (ring = 0 ; ring < 6 ; ++ring) piGlowRing (ring, percent) ; else { fprintf (stderr, "piglow: invalid colour\n") ; exit (EXIT_FAILURE) ; } return 0 ; } if (argc == 4) { /**/ if (strcasecmp (argv [1], "leg") == 0) { leg = atoi (argv [2]) ; if ((leg < 0) || (leg > 2)) { fprintf (stderr, "piglow: leg value out of range\n") ; exit (EXIT_FAILURE) ; } percent = getPercent (argv [3]) ; piGlowLeg (leg, percent) ; } else if (strcasecmp (argv [1], "ring") == 0) { ring = atoi (argv [2]) ; if ((ring < 0) || (ring > 5)) { fprintf (stderr, "piglow: ring value out of range\n") ; exit (EXIT_FAILURE) ; } percent = getPercent (argv [3]) ; piGlowRing (ring, percent) ; } return 0 ; } if (argc == 5) { if (strcasecmp (argv [1], "led") != 0) failUsage () ; leg = atoi (argv [2]) ; if ((leg < 0) || (leg > 2)) { fprintf (stderr, "piglow: leg value out of range\n") ; exit (EXIT_FAILURE) ; } ring = atoi (argv [3]) ; if ((ring < 0) || (ring > 5)) { fprintf (stderr, "piglow: ring value out of range\n") ; exit (EXIT_FAILURE) ; } percent = getPercent (argv [4]) ; piGlow1 (leg, ring, percent) ; return 0 ; } failUsage () ; return 0 ; }
cinder::Surface ColorAlgoGen::operator()(const cinder::Surface& realImage) { std::vector<SurfaceWrapper> nextGenPopulation; nextGenPopulation.reserve(m_popSize); std::for_each(m_population.begin(), m_population.end(), [this, &realImage](SurfaceWrapper& s) { s.fitness = getFitness(realImage, s.image); }); std::sort(m_population.begin(), m_population.end(), [](const SurfaceWrapper& s1, const SurfaceWrapper& s2) { return s1.fitness < s2.fitness; }); unsigned int copyRatio = tools::clamp<int>( static_cast<int>(getPercent(COPY) * m_popSize), 0, m_popSize ); if (copyRatio > 0) { std::transform(m_population.begin(), m_population.begin() + copyRatio, std::back_inserter(nextGenPopulation), [&realImage, this](const SurfaceWrapper& sw) { return sw; }); } unsigned int mutateRatio = tools::clamp<int>( static_cast<int>(getPercent(MUTATE) * m_popSize), 0, m_popSize - copyRatio ); if (mutateRatio > 0) { std::transform(m_population.begin(), m_population.begin() + mutateRatio, std::back_inserter(nextGenPopulation), [&realImage, this](const SurfaceWrapper& sw) { cinder::Surface s = mutate(sw.image); return SurfaceWrapper(s, getFitness(realImage, s)); }); } unsigned int crossOverRatio = tools::clamp<int>( static_cast<int>(getPercent(CROSSOVER) * m_popSize), 0, m_popSize - copyRatio - mutateRatio ); if (crossOverRatio > 0) { std::transform(m_population.begin(), m_population.begin() + crossOverRatio, std::back_inserter(nextGenPopulation), [&realImage, this](const SurfaceWrapper& sw) { auto& pop = getPop(); cinder::Surface s = crossOver(sw.image, pop[RANDOMIZER.nextUint(pop.size())].image); return SurfaceWrapper(s, getFitness(realImage, s)); }); } unsigned int randomRatio = tools::clamp<int>( static_cast<int>(getPercent(RANDOM) * m_popSize), 0, m_popSize - copyRatio - mutateRatio - crossOverRatio ); if (nextGenPopulation.size() + randomRatio < m_popSize) { randomRatio = m_popSize - nextGenPopulation.size(); } if (randomRatio > 0) { std::transform(m_population.begin(), m_population.begin() + randomRatio, std::back_inserter(nextGenPopulation), [&realImage, this](const SurfaceWrapper& sw) { cinder::Surface s = getRandomSurface(sw.image.getWidth(), sw.image.getHeight()); return SurfaceWrapper(s, getFitness(realImage, s)); }); } std::sort(nextGenPopulation.begin(), nextGenPopulation.end(), [](const SurfaceWrapper& s1, const SurfaceWrapper& s2) { return s1.fitness < s2.fitness; }); m_population = nextGenPopulation; return m_population.front().image; }
extern char * OutputCubeAnalysis(float aarOutput[2][NUM_ROLLOUT_OUTPUTS], float aarStdDev[2][NUM_ROLLOUT_OUTPUTS], const evalsetup * pes, const cubeinfo * pci) { static char sz[4096]; int i; float arDouble[4]; const char *aszCube[] = { NULL, N_("No double"), N_("Double, take"), N_("Double, pass") }; int ai[3]; cubedecision cd; float r; FindCubeDecision(arDouble, aarOutput, pci); /* header */ sprintf(sz, "\n%s\n", _("Cube analysis")); /* ply & cubeless equity */ switch (pes->et) { case EVAL_NONE: strcat(sz, _("n/a")); break; case EVAL_EVAL: sprintf(strchr(sz, 0), "%u-%s", pes->ec.nPlies, _("ply")); break; case EVAL_ROLLOUT: strcat(sz, _("Rollout")); break; } if (pci->nMatchTo) sprintf(strchr(sz, 0), " %s %s (%s: %s)\n", (!pci->nMatchTo || (pci->nMatchTo && !fOutputMWC)) ? _("cubeless equity") : _("cubeless MWC"), OutputEquity(aarOutput[0][OUTPUT_EQUITY], pci, TRUE), _("Money"), OutputMoneyEquity(aarOutput[0], TRUE)); else sprintf(strchr(sz, 0), " %s %s\n", _("cubeless equity"), OutputMoneyEquity(aarOutput[0], TRUE)); /* Output percentags for evaluations */ if (exsExport.fCubeDetailProb && pes->et == EVAL_EVAL) { strcat(sz, " "); strcat(sz, OutputPercents(aarOutput[0], TRUE)); } strcat(sz, "\n"); /* equities */ strcat(sz, _("Cubeful equities")); strcat(sz, ":\n"); if (pes->et == EVAL_EVAL && exsExport.afCubeParameters[0]) { strcat(sz, " "); strcat(sz, OutputEvalContext(&pes->ec, FALSE)); strcat(sz, "\n"); } getCubeDecisionOrdering(ai, arDouble, aarOutput, pci); for (i = 0; i < 3; i++) { sprintf(strchr(sz, 0), "%d. %-20s", i + 1, gettext(aszCube[ai[i]])); strcat(sz, OutputEquity(arDouble[ai[i]], pci, TRUE)); if (i) sprintf(strchr(sz, 0), " (%s)", OutputEquityDiff(arDouble[ai[i]], arDouble[OUTPUT_OPTIMAL], pci)); strcat(sz, "\n"); } /* cube decision */ cd = FindBestCubeDecision(arDouble, aarOutput, pci); sprintf(strchr(sz, 0), "%s: %s", _("Proper cube action"), GetCubeRecommendation(cd)); if ((r = getPercent(cd, arDouble)) >= 0.0) sprintf(strchr(sz, 0), " (%.1f%%)", 100.0f * r); strcat(sz, "\n"); /* dump rollout */ if (pes->et == EVAL_ROLLOUT && exsExport.fCubeDetailProb) { char asz[2][1024]; cubeinfo aci[2]; for (i = 0; i < 2; i++) { memcpy(&aci[i], pci, sizeof(cubeinfo)); if (i) { aci[i].fCubeOwner = !pci->fMove; aci[i].nCube *= 2; } FormatCubePosition(asz[i], &aci[i]); } sprintf(strchr(sz, 0), "\n%s:\n", _("Rollout details")); strcat(strchr(sz, 0), OutputRolloutResult(NULL, asz, aarOutput, aarStdDev, aci, 0, 2, pes->rc.fCubeful)); } if (pes->et == EVAL_ROLLOUT && exsExport.afCubeParameters[1]) strcat(strchr(sz, 0), OutputRolloutContext(NULL, &pes->rc)); return sz; }