satanas / Turpial

Twitter client written in Python. Light, fast, fully functional and integrated to the user desktop
http://turpial.org.ve
GNU General Public License v3.0
175 stars 47 forks source link

turpial hangs at getting tweets #395

Open JPRuehmann opened 8 years ago

JPRuehmann commented 8 years ago

Hello Since some time ago Turpial hangs at getting tweets. Sometimes sooner sometimes later Turpial stops getting tweets, the indicator at top is standing and the times in the Tweets are not changed any more. After closing and restarting Turpial everything works normal till it hangs again. How can I make it work again normally? Thanks, JPR

satanas commented 8 years ago

Hello @JPRuehmann, could you run Turpial from the shell and paste here the error generated when it hangs?

Run Turpial from the shell with:

turpial --debug
JPRuehmann commented 8 years ago

sorry that I took so long

Here is the output of turpial --debug &> turpial.txt

/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:127: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK set_interactive(1) DEBUG:AppConfig:Started DEBUG:AppConfig:CONFIG_FILE: /home/ruehmann/.config/turpial/config DEBUG:AppConfig:FILTERS_FILE: /home/ruehmann/.config/turpial/filtered DEBUG:AppConfig:FRIENDS_FILE: /home/ruehmann/.config/turpial/friends DEBUG:AppConfig:Started DEBUG:AppConfig:CONFIG_FILE: /home/ruehmann/.config/turpial/config DEBUG:AppConfig:FILTERS_FILE: /home/ruehmann/.config/turpial/filtered DEBUG:AppConfig:FRIENDS_FILE: /home/ruehmann/.config/turpial/friends DEBUG:change me:Started DEBUG:AccountConfig:CACHEDIR: /home/ruehmann/.cache/turpial/JPRuehmann-twitter/images DEBUG:AccountConfig:CONFIGFILE: /home/ruehmann/.config/turpial/accounts/JPRuehmann-twitter/config DEBUG:Controller:Starting Turpial 3.5.9-dev DEBUG:TurpialHTTP:Validated SSL cert for host: api.twitter.com INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/account/verify_credentials.json HTTP/1.1" 200 971 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/lists/list.json?screen_name=JPRuehmann HTTP/1.1" 200 1854 DEBUG::Using gst as sound system --Created timer for JPRuehmann-twitter-timeline every 120000 sec --Created timer for JPRuehmann-twitter-replies every 600000 sec --Created timer for JPRuehmann-twitter-directs every 600000 sec Traceback (most recent call last): File "/home/ruehmann/turpial/turpial/ui/qt/main.py", line 724, in after_core_initialized self.turn_on_queue_timer() File "/home/ruehmann/turpial/turpial/ui/qt/main.py", line 1007, in turn_on_queue_timer self.queue_dialog.update() File "/home/ruehmann/turpial/turpial/ui/qt/queue.py", line 175, in update for status in self.base.core.list_statuses_queue(): File "/home/ruehmann/turpial/turpial/ui/qt/worker.py", line 467, in list_statuses_queue account_id, message = line.strip().split("\1") ValueError: need more than 1 value to unpack INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/statuses/home_timeline.json?count=50&include_entities=True HTTP/1.1" 200 27940 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/statuses/mentions_timeline.json?count=50&include_entities=True HTTP/1.1" 200 12702 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/direct_messages.json?count=50&include_entities=True HTTP/1.1" 200 2464 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/friends/ids.json?cursor=-1 HTTP/1.1" 200 4295 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/users/lookup.json?user_id=1067081923%2C1055071543%2C60287357%2C2916305152%2C888289790%2C492381547%2C54217222%2C845252629%2C176053221%2C375484736%2C55535413%2C116195737%2C29455299%2C14446872%2C375162883%2C405424021%2C125016174%2C52059372%2C2840976269%2C1089186516%2C581163439%2C2347555224%2C64678323%2C19069018%2C2341884084%2C2438759857%2C14216113%2C1446089912%2C50616576%2C2542086530%2C137885308%2C2946185566%2C377261179%2C104498162%2C1941818448%2C148714673%2C878350800%2C107016603%2C43849143%2C18480068%2C23774232%2C40003692%2C2895967095%2C528766113%2C52681606%2C1593184831%2C19153998%2C19480009%2C403404010%2C820470894%2C273267757%2C752933479%2C820831884%2C824749862%2C89255465%2C36936320%2C15632132%2C1667429407%2C48978003%2C194613806%2C122593067%2C514624672%2C382295389%2C525392721%2C158223207%2C887416850%2C106682853%2C460204007%2C2775915514%2C2405241739%2C142549999%2C64148740%2C2195621735%2C459389304%2C214805599%2C393168586%2C214800435%2C214800273%2C19609062%2C14247715%2C28964208%2C57350105%2C2834511%2C114508061%2C58919567%2C605731656%2C23155431%2C105555355%2C75391358%2C83346730%2C572225652%2C3963481%2C95731075%2C17874544%2C115767100%2C110733633%2C160220349%2C14068231%2C56767791%2C276222728 HTTP/1.1" 200 49567 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/users/lookup.json?user_id=568173206%2C12851282%2C145180684%2C294905237%2C742143%2C19701628%2C192301091%2C92808423%2C89918770%2C4816%2C13862172%2C141493973%2C14415338%2C38975663%2C807802369%2C144111688%2C12733722%2C385570796%2C7620522%2C1968539612%2C714379704%2C903787412%2C65875890%2C514481337%2C39709624%2C535448736%2C409560789%2C604918792%2C17656125%2C15329506%2C558446365%2C978908012%2C564686965%2C1349082427%2C395201270%2C1582853809%2C1086485478%2C1598644159%2C32884895%2C28865239%2C950007728%2C14347018%2C52426912%2C575842796%2C598155109%2C1306914896%2C87791392%2C471897125%2C42024345%2C175141751%2C35018926%2C1879512708%2C21861198%2C28023330%2C17444764%2C189566793%2C24407244%2C111675070%2C426977869%2C18063993%2C895988558%2C24397330%2C1276201345%2C118084665%2C106437398%2C332885080%2C121847398%2C2553151%2C200051147%2C14706299%2C72915446%2C356567464%2C587353797%2C345123302%2C57317071%2C56836564%2C1477382720%2C105554801%2C228417137%2C403551598%2C67271489%2C824961972%2C1443419558%2C583904348%2C800202703%2C26779010%2C270878954%2C136590288%2C112705411%2C627694230%2C775664780%2C478057515%2C43017642%2C1279910736%2C395873726%2C17555025%2C429058611%2C395141983%2C37945074%2C406406896 HTTP/1.1" 200 50323 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/users/lookup.json?user_id=64425528%2C260426305%2C20600870%2C1372265538%2C281936245%2C17790274%2C95288892%2C1356584034%2C118462098%2C1316072509%2C14601087%2C21871760%2C40148479%2C90677506%2C16186691%2C16181559%2C25390350%2C18983473%2C19021911%2C175037574%2C10810102%2C15566862%2C556902009%2C14235098%2C56993510%2C17965092%2C15537659%2C436945964%2C206698330%2C54312330%2C552623744%2C1119318360%2C14172171%2C898351614%2C455147671%2C88916809%2C14480405%2C20499665%2C731618604%2C257585130%2C17727792%2C625711245%2C21702827%2C15680514%2C73197759%2C230679224%2C840199446%2C447104635%2C53929744%2C450010008%2C1006300458%2C570397132%2C704803416%2C873837146%2C445036298%2C11435642%2C691353%2C49793%2C11388132%2C46356453%2C843169339%2C50943115%2C139463927%2C572513746%2C16696799%2C483809260%2C456847266%2C319349245%2C2522161%2C350806797%2C174953155%2C52407579%2C16484198%2C16313718%2C127196685%2C130601077%2C88398197%2C2729061%2C299663399%2C17383707%2C228458981%2C72257634%2C356447266%2C5776022%2C19709133%2C17803524%2C41105708%2C17803569%2C70914570%2C71486476%2C304342650%2C278405948%2C184875927%2C14821969%2C22923965%2C769652731%2C57899418%2C14198044%2C21504774%2C40451562 HTTP/1.1" 200 48188 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/users/lookup.json?user_id=14403076%2C89483617%2C18136002%2C15964914%2C283495522%2C220145170%2C105289372%2C363210621%2C427658841%2C29058645%2C5402612%2C398332485%2C454334409%2C91333167%2C18736652%2C18194898%2C108034150%2C220331773%2C573691525%2C14383393%2C316431255%2C225496697%2C572453036%2C103865085%2C19766517%2C437311884%2C630558538%2C630232648%2C630408945%2C366054004%2C15956735%2C384771032%2C634582383%2C249361800%2C634355129%2C22135027%2C47948264%2C8917142%2C11348282%2C16477964%2C15234407%2C17875848%2C11502562%2C96983268%2C38735244%2C18476766%2C241125767%2C118059149%2C783214%2C24358412%2C30331417%2C264877618%2C297856522%2C76617978%2C141181409%2C73597791%2C19582287%2C40294273%2C52380955%2C14285735%2C38252846%2C521951828%2C174643567%2C173855818%2C173845448%2C462916941%2C548015994%2C377555807%2C588625221%2C16128914%2C17557380%2C74684634%2C91077118%2C14717887%2C23458385%2C18901823%2C279101914%2C169972526%2C17895191%2C114307051%2C21752309%2C84873971%2C217234313%2C19117417%2C47971303%2C600501387%2C211162903%2C16805385%2C43166389%2C16024410%2C61625811%2C12925072%2C246721619%2C404719788%2C485751594%2C569832889%2C599698104%2C8943%2C25596051%2C16153562 HTTP/1.1" 200 45895 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/users/lookup.json?user_id=366056450%2C6344822%2C61842046%2C113611302%2C58526655%2C227087267%2C15956203%2C36360143%2C20479813%2C552254877%2C14069880%2C18027309%2C133396516%2C89219751%2C350206926%2C443725045%2C47323734%2C474976283%2C17492631%2C42856894%2C70689844%2C22291011%2C218478219%2C150795370%2C76894534%2C305267437%2C20188680%2C16745492%2C15738602%2C19232587%2C31711197%2C14717769%2C32831456%2C14327439%2C495418126%2C14803701%2C59441718%2C60089271%2C236026422%2C117001422%2C419751976%2C59400670%2C97291791%2C44952198%2C98708420%2C167475708%2C333482192%2C28654270%2C46456961%2C25147094%2C146821172%2C99561205%2C514714483%2C115218445%2C57287624%2C53972969%2C87025113%2C80654464%2C87027312%2C55211585%2C148286079%2C127266451%2C300352705%2C570709910%2C44638528%2C203081276%2C139704692%2C73784728%2C14698728%2C218517209%2C400219008%2C68392502%2C19767466%2C17876003%2C18761029%2C51103685%2C48801251%2C17835938%2C107983671%2C67278209%2C180030332%2C198895800%2C14112318%2C18485224%2C149030786%2C200999836%2C185611778%2C84790809%2C16009851%2C27203158%2C97210046%2C36713184%2C180106309%2C24870628%2C81640117%2C1303281%2C2565121%2C446106150%2C1496461%2C72845405 HTTP/1.1" 200 45199 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/users/lookup.json?user_id=28090494%2C22926365%2C76906543%2C16026917%2C3068271%2C27037828%2C125105300%2C90605318%2C21515606%2C74793861%2C15243812%2C83867156%2C58659809%2C183961634%2C101574740%2C46414198%2C317028894%2C37930051%2C21196450%2C404731144%2C343391171%2C425682069%2C267366458%2C51522366%2C4970411%2C146974766%2C26472681%2C325461903%2C48996740%2C320412967%2C1877831%2C87818409%2C328516391%2C15653014%2C81201679%2C221744396%2C61603521%2C462027969%2C24193151%2C19149087%2C39722017%2C563145769%2C397586892%2C169043724%2C8720562%2C14159148%2C50056496%2C5734902%2C16058651%2C66651957%2C91544499%2C16557497%2C555026856%2C550099624%2C69248730%2C378693834%2C454901965%2C479750573%2C476199268%2C18760015%2C43872301%2C17838015%2C759251%2C5715752%2C17875811%2C18047862%2C40227292%2C18774524%2C33510753%2C20731278%2C20730225%2C72264915%2C15151165%2C50393960%2C84613242%2C94098904%2C57313639%2C64448379%2C89784753%2C76921715%2C131880526%2C15761352%2C19021299%2C36150298%2C69894710%2C75251268%2C16309072%2C55281744%2C5943942%2C33557760%2C20411676%2C69939127%2C192303150%2C273468342%2C11403882%2C811959%2C188055655%2C321524690%2C102668707%2C87278692 HTTP/1.1" 200 47794 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/users/lookup.json?user_id=54545980%2C14961883%2C196574249%2C41118439%2C125671932%2C21209555%2C19124588%2C108921304%2C14305613%2C160241888%2C2254831%2C98841515%2C381766671%2C54189126%2C81327646%2C129922481%2C50068141%2C220316300%2C21327209%2C233298735%2C17177278%2C150995808%2C177522425%2C192002834%2C101448841%2C49553662%2C279412211%2C260450179%2C374314410%2C75742264%2C64972046%2C54246040%2C42595848%2C337299792%2C348362903%2C34288955%2C87791237%2C97168201%2C404992954%2C62476015%2C104285629%2C44295139%2C101399216%2C40432919%2C203016564%2C117080539%2C174280353%2C2142731%2C71480053%2C35142791%2C22682375%2C76000628%2C14861041%2C177242107%2C20609518%2C166144390%2C53075530%2C225421876%2C226112473%2C47728577%2C233707929%2C399970973%2C849571%2C1151281%2C3782931%2C1002981%2C8113342%2C15753753%2C47099187%2C38504149%2C75825621%2C68920770%2C45513907%2C52865195%2C46631633%2C261662866%2C31363776%2C247787359%2C88642119%2C71938219%2C276438100%2C81054508%2C22524853%2C242418222%2C16029780%2C16312559%2C62500821%2C23926662%2C1652541%2C212407067%2C393416497%2C38904087%2C39282384%2C18331770%2C19756802%2C20613727%2C36794888%2C62480812%2C112958411%2C111003707 HTTP/1.1" 200 47958 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/users/lookup.json?user_id=188255068%2C71498154%2C156186959%2C52140214%2C18179467%2C16569660%2C8447362%2C21507386%2C353825896%2C303051305%2C14257229%2C366269505%2C387719837%2C65129007%2C14861745%2C109558430%2C106414736%2C142602917%2C125680926%2C102744575%2C49633421%2C99094079%2C24397949%2C136947126%2C10733552%2C253891169%2C46911207%2C157935238%2C95255169%2C22957418%2C39112661%2C98003866%2C42860949%2C378017244%2C64993777%2C212910781%2C167331759%2C180401539%2C17782233%2C50260096%2C117211924%2C28409463%2C15520241%2C76713761%2C16203461%2C47375691%2C97517429%2C37667542%2C144226686%2C57355951%2C132677711%2C378266033%2C15713970%2C93169115%2C53016156%2C174415609%2C85192350%2C247021123%2C56118316%2C127350732%2C64268192%2C24860828%2C63738086%2C52715209%2C24892844%2C272876032%2C141200577%2C284199669%2C52231050%2C116746586%2C14618956%2C145265961%2C145244792%2C111089089%2C16600964%2C93425057%2C41560281%2C27434239%2C33570953%2C13595222%2C93470750%2C59085146%2C8487782%2C12358112%2C77770422%2C14330924%2C39999078%2C268464220%2C66615154%2C16296946%2C15286105%2C339561882%2C15191858%2C43749189%2C302472624%2C36089543%2C46490393%2C41994074%2C234343491%2C50452609 HTTP/1.1" 200 48405 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/users/lookup.json?user_id=17786601%2C22172171%2C14391827%2C14911702%2C14572574%2C36178012%2C145646902%2C121362786%2C9428192%2C38444282%2C17752770%2C12509262%2C3197921%2C18000943%2C17290634%2C84582666%2C44178732%2C181199293%2C14166720%2C42705381%2C14257211%2C34256245%2C16589206%2C14454247%2C41388754%2C2459371%2C110677650%2C161611850%2C191368105%2C16698884%2C39224547%2C123675232%2C6017542%2C115183712%2C84621058%2C117689716%2C116768377%2C149949916%2C127572730%2C112437493%2C144558137%2C29685056%2C29689787%2C9824472%2C5893402%2C24145947%2C16960526%2C17841022%2C53727802%2C24764656%2C58286588%2C49473340%2C5380152%2C52326110%2C9428062%2C29031844%2C14553288%2C15901817%2C15836338%2C11268812%2C15998669%2C68511500%2C9334352%2C18219170%2C9655032%2C21879953%2C14341194%2C48820509%2C31812497%2C5876652 HTTP/1.1" 200 36075 Traceback (most recent call last): File "/home/ruehmann/turpial/turpial/ui/qt/queue.py", line 135, in __on_timeout if len(self.base.core.list_statuses_queue()) == 0: File "/home/ruehmann/turpial/turpial/ui/qt/worker.py", line 467, in list_statuses_queue account_id, message = line.strip().split("\1") ValueError: need more than 1 value to unpack Traceback (most recent call last): File "/home/ruehmann/turpial/turpial/ui/qt/queue.py", line 135, in __on_timeout if len(self.base.core.list_statuses_queue()) == 0: File "/home/ruehmann/turpial/turpial/ui/qt/worker.py", line 467, in list_statuses_queue account_id, message = line.strip().split("\1") ValueError: need more than 1 value to unpack INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/statuses/home_timeline.json?count=50&include_entities=True&since_id=694113514064068608 HTTP/1.1" 200 3560 Traceback (most recent call last): File "/home/ruehmann/turpial/turpial/ui/qt/queue.py", line 135, in __on_timeout if len(self.base.core.list_statuses_queue()) == 0: File "/home/ruehmann/turpial/turpial/ui/qt/worker.py", line 467, in list_statuses_queue account_id, message = line.strip().split("\1") ValueError: need more than 1 value to unpack Traceback (most recent call last): File "/home/ruehmann/turpial/turpial/ui/qt/queue.py", line 135, in __on_timeout if len(self.base.core.list_statuses_queue()) == 0: File "/home/ruehmann/turpial/turpial/ui/qt/worker.py", line 467, in list_statuses_queue account_id, message = line.strip().split("\1") ValueError: need more than 1 value to unpack INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/statuses/home_timeline.json?count=50&include_entities=True&since_id=694114069616443392 HTTP/1.1" 200 4274 . . . File "/home/ruehmann/turpial/turpial/ui/qt/queue.py", line 135, in __on_timeout if len(self.base.core.list_statuses_queue()) == 0: File "/home/ruehmann/turpial/turpial/ui/qt/worker.py", line 467, in list_statuses_queue account_id, message = line.strip().split("\1") ValueError: need more than 1 value to unpack INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/statuses/mentions_timeline.json?count=50&include_entities=True&since_id=681850430599598080 HTTP/1.1" 200 28 INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.twitter.com DEBUG:urllib3.connectionpool:Setting read timeout to 10 DEBUG:urllib3.connectionpool:"GET /1.1/direct_messages.json?count=50&include_entities=True&since_id=625295533528248323 HTTP/1.1" 200 28 Traceback (most recent call last): File "/home/ruehmann/turpial/turpial/ui/qt/queue.py", line 124, in __on_timeout def __on_timeout(self): Thanks,

satanas commented 8 years ago

Hey @JPRuehmann, the link you provided in the previous comment is pointing to this same issue, I can't see any debug information attached to it. Could you please verify?

Thanks

JPRuehmann commented 8 years ago

can´t post the File. Have now posted Begin and end of the File by editing Post, hope that helps.

satanas commented 8 years ago

@JPRuehmann Ok, could you please run the command below in your shell and paste the output? Seems like a problem with the name of one of your accounts.

ls -la ~/.config/turpial/accounts/
JPRuehmann commented 8 years ago

Here it is.

insgesamt 12 drwxrwxr-x 3 ruehmann ruehmann 4096 Jun 15 2014 . drwxr-xr-x 5 ruehmann ruehmann 4096 Jun 15 2014 .. drwxrwxr-x 2 ruehmann ruehmann 4096 Jun 15 2014 JPRuehmann-twitter

Thanks,

tr37ion commented 8 years ago

I experience similar issues. Sometimes search results get listed, often not. Then I let it refresh for an hour and suddenly the results come in.

Questions I ask myself, while search columns hang randomly and suddenly load again.

JPRuehmann commented 8 years ago

Hello To your Questions No, No and No. It is not the Search Queue that hangs but the timeline. Waiting for multiple days not help and the deleting of the Files and recreating the account is not helping to. Thanks,

wolfyrion commented 8 years ago

I have the same issues as well Timeline hangs and Also my search queries hang as well.... from time to time

at the time being I Am using Polly and everything is working fine but I would love to use Turpial again.

Thanks :)

JPRuehmann commented 8 years ago

Hello Will there be hapened something or is Turpial dead? Thanks,