<prompt> Kuna mfumo wa uthibitishaji unaofanya kazi na tokeni za uthibitishaji. Kwa kila kipindi, mtumiaji atapokea tokeni mpya ya uthibitishaji ambayo muda wake utaisha sekunde za timeToLive baada ya currentTime. Tokeni ikisasishwa, muda wa mwisho wa matumizi utaongezwa ili kuisha sekunde timeToLive baada ya uwezekano tofauti currentTime.Tekeleza darasa la AuthenticationManager: AuthenticationManagerint timeToLive huunda AuthenticationManager na kuweka timeToLive. generatestring tokenId, int currentTime hutengeneza tokeni mpya yenye tokenId iliyotolewa kwa currentTime kwa sekunde. renewstring tokenId, int currentTime hufanya upya tokeni ambayo muda wake haujaisha kwa tokenId iliyotolewa kwa currentTime kwa sekunde. Ikiwa hakuna tokeni ambazo muda wake wa matumizi haujaisha zilizo na tokenId iliyotolewa, ombi litapuuzwa, na hakuna kinachotokea. countUnexpiredTokensint currentTime hurejesha idadi ya tokeni zisizoisha muda wake kwa wakati uliotolewa.Kumbuka kwamba ikiwa muda wa tokeni utaisha kwa wakati t, na kitendo kingine kikifanyika kwa wakati t fanya upya au countUnexpiredTokens, mwisho wa matumizi utafanyika kabla ya vitendo vingine.Mfano wa 1:Ingizo AuthenticationManager , renew , generate , countUnexpiredTokens , toa, fanya upya , upya , countUnexpiredTokens 5, aaa, 1, aaa, 2, 6, bbb, 7, aaa, 8, bbb, 10, 15Patonull, null, null, 1, null, null, null, 0UfafanuziAuthenticationManager authenticationManager AuthenticationManager mpya5; Huunda Kidhibiti cha Uthibitishaji kwa timeToLive sekunde 5.authenticationManager.renew aaa , 1; Hakuna tokeni iliyo na tokenId aaa kwa wakati 1, kwa hivyo hakuna kinachotokea.authenticationManager.generate aaa, 2; Hutoa tokeni mpya yenye isharaId aaa kwa wakati 2.authenticationManager.countUnexpiredTokens6; Ishara iliyo na tokeniId aaa ndiyo pekee ambayo muda wake haujaisha kwa wakati wa 6, kwa hivyo rudisha 1.authenticationManager.generate bbb , 7; Huzalisha tokeni mpya yenye tokenId bbb kwa wakati 7.authenticationManager.renew aaa , 8; Tokeni iliyo na tokeniId aaa iliisha muda wa 7, na 8 7, kwa hivyo kwa wakati wa 8 ombi la kufanya upya linapuuzwa, na hakuna kinachotokea.authenticationManager.fanya upya bbb, 10; Tokeni iliyo na tokeniId bbb haijaisha muda wake kwa saa 10, kwa hivyo ombi la kufanya upya linatimizwa na sasa tokeni itaisha muda wa 15.authenticationManager.countUnexpiredTokens15; Tokeni iliyo na tokeniId bbb inaisha muda wa 15, na tokeni iliyo na tokenId aaa iliisha muda wa 7, kwa hivyo kwa sasa hakuna tokeni ambayo muda wake wa matumizi haujaisha, kwa hivyo rudisha 0.Vikwazo: 1 timeToLive 108 1 wakati wa sasa 108 1 tokenId.length 5 tokenId inajumuisha herufi ndogo pekee. Simu zote za kutoa zitakuwa na thamani za kipekee za tokenId. Thamani za currentTime kwenye simu zote za chaguo za kukokotoa zitaongezeka kabisa. Simu zisizozidi 2000 zitapigwa kwa vitendaji vyote kwa pamoja.  <response>: def interpretamri: str - str: matokeo mimi 0 wakati mimi lenamri: ikiwa amrii G: result.ongezaG mimi 1 elif amrii:i2 : tokeo.ongezao mimi 2 kwingine: result.ongezaal mimi 4 rudisha .jiunge matokeo 