<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SmartDukaan &#x2013; /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Wed, 07 Oct 2026 13:59:59 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Thu, 10 Sep 2026 03:00:55 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37565 – IMEI activation: 20s tick lanes for oppo/realme/vivo, idle once the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;IMEI activation: 20s tick lanes for oppo/realme/vivo, idle once the day clears&lt;br /&gt;
&lt;br /&gt;
Replaces the two once-a-day passes with chunk-per-tick lanes. Each tick takes one&lt;br /&gt;
chunk and returns; when a brand&apos;s pool comes back empty its turn is skipped, and&lt;br /&gt;
when everything is clear the ticks do nothing and stay silent until midnight.&lt;br /&gt;
&lt;br /&gt;
- browser lane (StandAlone): one chunk of 25 for one brand every 20s, oppo and&lt;br /&gt;
  realme by turns. Still exactly one ChromeDriver alive at a time.&lt;br /&gt;
- vivo lane: its own tick, chunk of 250. It must not share the browser lane --&lt;br /&gt;
  0.24s an imei against oppo&apos;s 10.2s means it would need ~70 hours behind them&lt;br /&gt;
  for work it does alone in 39 minutes.&lt;br /&gt;
&lt;br /&gt;
The snapshot is gone; the pool query is the cursor. That is what makes a restart&lt;br /&gt;
cost one chunk instead of the day: the 12:03 restart on 09-Sep forfeited ~4,000&lt;br /&gt;
lookups and the whole afternoon, and last_finish had read -1 for three days.&lt;br /&gt;
&lt;br /&gt;
The snapshot existed to stop the re-ask loop (realme, 29-Aug: 4,524 requests&lt;br /&gt;
against 1,004 distinct imeis). That is now closed at the source instead -- oppo,&lt;br /&gt;
realme and motorola stamp every imei they asked about, not just the ones that&lt;br /&gt;
produced a map entry, so a failed lookup rests until tomorrow rather than coming&lt;br /&gt;
back on the next tick. Motorola is fixed pre-emptively; nothing schedules it yet.&lt;br /&gt;
&lt;br /&gt;
Also:&lt;br /&gt;
- secondary and tertiary are merged by turns rather than concatenated. Safe while&lt;br /&gt;
  a pass walked to the end; without that guarantee oppo&apos;s 163 tertiary serials sat&lt;br /&gt;
  behind 3,819 secondary ones and would only be reached on a day that cleared.&lt;br /&gt;
- vivo abandons a tick rather than the chunk when the captcha solver returns no&lt;br /&gt;
  code -- one probe per 20s while it is down instead of 250, and no rows rested&lt;br /&gt;
  over a transient outage.&lt;br /&gt;
- the funnel gauges move from a pass to a day. due is measured on the first tick&lt;br /&gt;
  after midnight, the rest accumulate, and last_finish_epoch becomes a real&lt;br /&gt;
  completion clock. Truncation is detected at the midnight rollover, which is the&lt;br /&gt;
  case that never reaches an end-of-run at all.&lt;br /&gt;
&lt;br /&gt;
This does not create capacity. At the 21s/imei measured on 09-Sep the pool still&lt;br /&gt;
needs ~35 hours and will not clear; it now rolls over visibly instead of silently.&lt;br /&gt;
The lever for that is DAYS=1.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/ImeiActivationGauges.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/MotorolaImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OppoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/RealmeImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37565</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37565</guid></item>
<item><pubDate>Mon, 31 Aug 2026 16:08:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37472 – IMEI activation: one snapshotted daily pass per brand, on one ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 12 file(s) modified&lt;/strong&gt;&lt;br/&gt;IMEI activation: one snapshotted daily pass per brand, on one thread, with per-brand metrics&lt;br /&gt;
&lt;br /&gt;
Four @Scheduled jobs every 5 minutes become two daily passes. Oppo and realme&lt;br /&gt;
share one thread and alternate in 25-imei chunks, so exactly one ChromeDriver is&lt;br /&gt;
alive at a time instead of four; vivo keeps its own thread since it is direct&lt;br /&gt;
HTTP and does not contend for a browser.&lt;br /&gt;
&lt;br /&gt;
The pass snapshots its pool before any browser starts and walks that list to the&lt;br /&gt;
end. It never re-queries, and that is the actual fix. A failed lookup never&lt;br /&gt;
reaches dateMap.put, so no row is written, so createTimestamp is not bumped, so&lt;br /&gt;
the imei was eligible again on the next tick five minutes later. Measured 29-Aug:&lt;br /&gt;
realme issued 4,524 requests against 1,004 distinct imeis -- 4.5 asks each, 78%&lt;br /&gt;
of the day&apos;s budget spent re-asking -- while oppo, which rarely fails, sat at&lt;br /&gt;
1.03. More requests hardened the block, which caused more failures. A pass bounds&lt;br /&gt;
that: a failure costs one retry tomorrow, never one in five minutes.&lt;br /&gt;
&lt;br /&gt;
This supersedes the r37447/r37448/r37449 argument about driver count, which was&lt;br /&gt;
about the wrong variable. That argument blamed realme&apos;s collapse on CPU&lt;br /&gt;
contention pushing the captcha render past the element waits. The logs do not&lt;br /&gt;
support it: on 29-Aug oppo took ZERO canvas timeouts across all 24 hours on the&lt;br /&gt;
same box, same six cores, same driver count, same captcha vendor, load average&lt;br /&gt;
0.9 -- including the 15:00-23:00 window in which realme solved nothing at all.&lt;br /&gt;
Realme&apos;s own canvas wait is 15s against oppo&apos;s 8s, so the longer wait is the one&lt;br /&gt;
expiring. What realme&apos;s timeout rate tracks is its own daily request volume, and&lt;br /&gt;
it resets at midnight: 920/day -&gt; 0.3%, 3,467/day -&gt; 28%, 4,524/day -&gt; 75%. That&lt;br /&gt;
is realme.com declining to serve the widget.&lt;br /&gt;
&lt;br /&gt;
DAYS=0 is deliberate and is not an off-by-one: the pool filter is&lt;br /&gt;
createTimestamp &amp;lt; now().atStartOfDay().minusDays(DAYS), so DAYS=1 measures&lt;br /&gt;
against yesterday midnight and silently yields a two-day cadence, which is what&lt;br /&gt;
oppo and realme were running.&lt;br /&gt;
&lt;br /&gt;
Sizing measured on prod for a midnight start: oppo 4,133 and realme 2,118 imeis,&lt;br /&gt;
11.7h + 8.4h = 20.1 hours of a single thread. It fits with no slack; if the&lt;br /&gt;
&apos;pass finished&apos; counts come in short of &apos;pass starting&apos;, the lever is DAYS=1&lt;br /&gt;
rather than a second thread.&lt;br /&gt;
&lt;br /&gt;
Observability: ImeiActivationGauges publishes the funnel per brand on&lt;br /&gt;
/actuator/prometheus, which alloy already scrapes on this host -- due, churned,&lt;br /&gt;
captcha_shown, captcha_solved, answered, dates_found, errors, run_seconds and&lt;br /&gt;
last_finish_epoch. Each stage fails differently and says what broke. Rates are&lt;br /&gt;
left to PromQL. The stage that matters for health is answered: churned&gt;0 with&lt;br /&gt;
answered==0 is precisely the shape of both silent outages this year (oppo wrote&lt;br /&gt;
nothing for a week; the vivo captcha solver was dead for 46 days). dates_found is&lt;br /&gt;
deliberately NOT a health signal -- when the multi-year backlog drained at the&lt;br /&gt;
end of August, yield fell from ~100% to 2-3% on the same day across all three&lt;br /&gt;
brands with nothing broken.&lt;br /&gt;
&lt;br /&gt;
Nagios cleanup: the Nagios server and every NRPE daemon are gone, so&lt;br /&gt;
WriteToPropertiesFile and the commented-out blocks that fed&lt;br /&gt;
nagios-cron.properties are deleted, and NagiosMonitorTasks is renamed&lt;br /&gt;
BalanceMonitorTasks for the transport it actually uses. Noted there that nothing&lt;br /&gt;
calls it -- there is no @Scheduled entry and no other caller -- which is why both&lt;br /&gt;
balance gauges have always read -1.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/BalanceGauges.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/BalanceMonitorTasks.java &lt;i&gt;(copied from /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/NagiosMonitorTasks.java@37471)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/ImeiActivationGauges.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/NagiosMonitorTasks.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/properties/WriteToPropertiesFile.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37472</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37472</guid></item>
<item><pubDate>Fri, 28 Aug 2026 12:08:39 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37448 – Daily re-check for all brands; Oppo back to parallel pools ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Daily re-check for all brands; Oppo back to parallel pools&lt;br /&gt;
&lt;br /&gt;
Two changes.&lt;br /&gt;
&lt;br /&gt;
1. Re-check window 4 days (secondary) and 2 days (tertiary) -&gt; 1 day everywhere.&lt;br /&gt;
   Daily demand becomes the full universe rather than a fraction of it:&lt;br /&gt;
&lt;br /&gt;
     Oppo    4,798 + 4,040 =  8,838/day&lt;br /&gt;
     Vivo    9,407 +   675 = 10,082/day   (doing 15,345 -- fine)&lt;br /&gt;
     Realme  1,973 + 1,081 =  3,054/day&lt;br /&gt;
&lt;br /&gt;
2. Oppo&apos;s two pools run in PARALLEL again, reverting the merge in r37447 for that&lt;br /&gt;
   brand only. Realme stays merged.&lt;br /&gt;
&lt;br /&gt;
   The merge was a straight trade of throughput for memory and oppo could not&lt;br /&gt;
   afford it. Measured over 32 minutes and again over an hour the next morning:&lt;br /&gt;
   3,555 then 3,456/day against 5,280 before merging. Batch cadence settled at a&lt;br /&gt;
   very regular ~15.5 min per cycle, so a 30-imei merged batch takes ~10.5 min =&lt;br /&gt;
   ~21s/imei, against the 10.2s it managed unmerged. At 21s the ceiling is&lt;br /&gt;
   86400/21 = 4,114/day even with zero idle, so no batch size and no shorter&lt;br /&gt;
   fixedDelay could have reached 8,838. Serialising simply costs more per imei&lt;br /&gt;
   here than running two browsers does.&lt;br /&gt;
&lt;br /&gt;
   Realme keeps the merge: it needs 3,054/day and delivers 2,952 merged, so a&lt;br /&gt;
   small size bump covers it without a second browser.&lt;br /&gt;
&lt;br /&gt;
Sizes: oppo 25 per pool (2 jobs in parallel), realme 12+12 merged, vivo 50+10&lt;br /&gt;
unchanged. Vivo has already cleared its entire secondary backlog -- the pool&lt;br /&gt;
reads 0 and both lists come back empty -- which is what the batch of 50 was for.&lt;br /&gt;
&lt;br /&gt;
Cost: oppo goes back to two concurrent drivers, so the fleet is 3 rather than 2,&lt;br /&gt;
roughly +700MB. Acceptable against the ~2GB freed today by reaping orphaned&lt;br /&gt;
browsers and capping retries, but it is the reason realme was left merged.&lt;br /&gt;
&lt;br /&gt;
Sizes are a starting point, not a final answer: oppo&apos;s per-imei time differs&lt;br /&gt;
markedly between merged and parallel modes, so re-measure before tuning further.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37448</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37448</guid></item>
<item><pubDate>Thu, 27 Aug 2026 20:27:13 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37446 – Per-brand batch sizes, and stop chrome forking a GPU process ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Per-brand batch sizes, and stop chrome forking a GPU process it cannot use&lt;br /&gt;
&lt;br /&gt;
maxResults was hardcoded in the shared repository methods, so Oppo and Vivo were&lt;br /&gt;
forced to the same secondary batch (10) and all three to the same tertiary (10).&lt;br /&gt;
It is now a parameter, set per brand at the call site.&lt;br /&gt;
&lt;br /&gt;
Sizing is arithmetic, from measured IN-BATCH per-imei time. Solving&lt;br /&gt;
M * 86400 / (300 + M*t) = needed/day:&lt;br /&gt;
&lt;br /&gt;
  brand    needed/day   t       M required   set to&lt;br /&gt;
  Vivo         9,407    0.8s        36         50    clears, ~12,700/day&lt;br /&gt;
  Realme       1,973   13.4s        10         10    was 5 = ~1,177/day, short&lt;br /&gt;
  Oppo         4,798   14.6s        88         10    HELD, see below&lt;br /&gt;
&lt;br /&gt;
Correcting an earlier measurement of mine: I reported Vivo at 13.6s per imei and&lt;br /&gt;
concluded its backlog could not be cleared. That averaged across the ~300s idle&lt;br /&gt;
gaps BETWEEN batches. In-batch it is 0.8s -- Vivo is 17x faster than I said, is&lt;br /&gt;
idle ~97% of the time, and 50 clears its pool comfortably. There is no wait in&lt;br /&gt;
the Vivo path; it is simply fast.&lt;br /&gt;
&lt;br /&gt;
Oppo is deliberately NOT raised. At 14.6s it would need M=88, which means&lt;br /&gt;
20-minute batches and near-permanent chrome sessions. But that 14.6s predates the&lt;br /&gt;
retry cap (r37445), which cuts exhausted imeis from 20 attempts to 7 and should&lt;br /&gt;
drop it sharply. Re-measure before sizing Oppo, rather than guessing high on a&lt;br /&gt;
box with 3GB free.&lt;br /&gt;
&lt;br /&gt;
Also: --disable-gpu, --disable-dev-shm-usage, --disable-software-rasterizer on&lt;br /&gt;
both selenium tasks. Headless needs no GPU yet chrome forks a gpu-process per&lt;br /&gt;
browser -- 6 were alive across the fleet, pure overhead. No behaviour change.&lt;br /&gt;
&lt;br /&gt;
Batch size does not raise peak concurrency (fixedDelay means one batch per job at&lt;br /&gt;
a time, so never more than 4 drivers). It raises DUTY CYCLE, which converts&lt;br /&gt;
chrome&apos;s footprint from intermittent to sustained. That matters here: tomcat is&lt;br /&gt;
9.4GB, available is ~3GB, and the two OOM kills this month both took tomcat.&lt;br /&gt;
&lt;br /&gt;
Cron-only deploy. The dao signature change has no callers outside cron.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37446</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37446</guid></item>
<item><pubDate>Wed, 26 Aug 2026 12:38:10 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37408 – Vivo IMEI activation: stop spending captchas on line items with ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Vivo IMEI activation: stop spending captchas on line items with no IMEI&lt;br /&gt;
&lt;br /&gt;
76% of production captcha rejections were line items whose serial number is&lt;br /&gt;
null. Vivo answers those with {&quot;msg&quot;:&quot;参数为空&quot;} -- &quot;parameter is empty&quot; --&lt;br /&gt;
and status 0, which this code recorded as a captcha failure. So a correctly&lt;br /&gt;
solved captcha looked wrong, no activated_imei row was written, the line item&lt;br /&gt;
stayed pending, and it came back every 5 minutes indefinitely. Those rows were&lt;br /&gt;
permanently consuming roughly 43% of the run quota, which is why every tick ran&lt;br /&gt;
full at 20/20 and the backlog never drained.&lt;br /&gt;
&lt;br /&gt;
It also made the model look far worse than it is: measured accept rate 44%,&lt;br /&gt;
while the same solver scores 85-93% when the IMEI is present. True captcha&lt;br /&gt;
accuracy is around 77%.&lt;br /&gt;
&lt;br /&gt;
Fixed at source: both named queries now exclude null and blank serial numbers,&lt;br /&gt;
so such line items never enter the pool (this also covers the Realme caller).&lt;br /&gt;
The loop additionally skips them before fetching a captcha, so no captcha,&lt;br /&gt;
solver call or Vivo request is spent discovering it.&lt;br /&gt;
&lt;br /&gt;
Found via the diagnostics added in r37407 -- the previous log line recorded&lt;br /&gt;
five words and discarded the response that named the cause.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ActivatedImei.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37408</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37408</guid></item>
<item><pubDate>Wed, 26 Aug 2026 12:26:43 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37407 – Vivo IMEI activation: log why a captcha was rejected  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Vivo IMEI activation: log why a captcha was rejected&lt;br /&gt;
&lt;br /&gt;
Production refuses ~56% of submissions, but reading the stored images by hand&lt;br /&gt;
showed 9 of 10 carried the CORRECT code. Replicating the request from the same&lt;br /&gt;
box gives 85-93%, and every external difference was measured and ruled out:&lt;br /&gt;
real vs dummy imei (7/8 both), user-agent (83% both), session reuse (74 vs 75%),&lt;br /&gt;
two concurrent jobs (80% both), source IP, and fetch-to-submit delay from 0 to&lt;br /&gt;
10s (90-91% throughout). Vivo&apos;s reply is byte-identical in every failure, so the&lt;br /&gt;
payload carries no discriminator.&lt;br /&gt;
&lt;br /&gt;
That leaves something inside this process, and the old log line recorded five&lt;br /&gt;
words and discarded the evidence. It now captures the code submitted, the imei,&lt;br /&gt;
the real fetch-to-submit latency, the session cookies actually held at submit&lt;br /&gt;
time, and Vivo&apos;s full response.&lt;br /&gt;
&lt;br /&gt;
The cookies matter most: if the SESSION cookie is being dropped or rotated&lt;br /&gt;
between fetching the captcha and submitting it, the captcha would be validated&lt;br /&gt;
against the wrong session and refused despite a correct code -- which fits every&lt;br /&gt;
measurement above and is invisible from outside the JVM.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37407</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37407</guid></item>
<item><pubDate>Tue, 25 Aug 2026 20:57:24 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37402 – Vivo IMEI activation: report Vivo&apos;s captcha verdict back to the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Vivo IMEI activation: report Vivo&apos;s captcha verdict back to the solver&lt;br /&gt;
&lt;br /&gt;
Only this cron ever learns whether Vivo accepted a captcha (status 0 means it&lt;br /&gt;
was wrong), so it is the only place that can label the solver&apos;s training data.&lt;br /&gt;
After each checkCode response it now posts the image, the code and the outcome&lt;br /&gt;
to the solver&apos;s /verdict endpoint, which files the sample as accepted (the&lt;br /&gt;
prediction was right - a free label) or rejected (needs a human to label it).&lt;br /&gt;
&lt;br /&gt;
The solver has been running at a measured 22.3% accept rate and no training&lt;br /&gt;
data was ever collected, so the model could not be improved at all.&lt;br /&gt;
&lt;br /&gt;
Strictly best-effort: 2s connect / 3s read timeouts and every exception&lt;br /&gt;
swallowed. Data collection must never slow down or break IMEI activation.&lt;br /&gt;
&lt;br /&gt;
The shared secret is read from CAPTCHA_VERDICT_TOKEN in the environment,&lt;br /&gt;
falling back to a captcha.verdict.token property, so it need not be committed.&lt;br /&gt;
Without a token the call is skipped entirely.&lt;br /&gt;
&lt;br /&gt;
Also drops /tmp/captcha.jpg: the captcha bytes are needed in memory for the&lt;br /&gt;
verdict report anyway, so the two concurrently-scheduled Vivo jobs no longer&lt;br /&gt;
share one file and overwrite each other&apos;s image.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37402</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37402</guid></item>
<item><pubDate>Tue, 25 Aug 2026 16:59:27 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37393 – Vivo IMEI activation: validate captcha solver response before submitting to ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Vivo IMEI activation: validate captcha solver response before submitting to Vivo&lt;br /&gt;
&lt;br /&gt;
The captcha solver at 45.79.121.178 was down from 09-Jul-2026 to 25-Aug-2026&lt;br /&gt;
(uwsgi never restarted after a host reboot). nginx returned a 502 page for&lt;br /&gt;
every request. RestClient.executeJson returns the response body regardless of&lt;br /&gt;
HTTP status, so CaptchaService handed that HTML page to Vivo as the captcha&lt;br /&gt;
code and Vivo logged it as &apos;Found invalid captcha&apos; - indistinguishable from an&lt;br /&gt;
ordinary wrong guess. The outage went unnoticed for 46 days.&lt;br /&gt;
&lt;br /&gt;
CaptchaService now checks the response against the solver model&apos;s own 31-class&lt;br /&gt;
alphabet (^[1-9A-HK-NP-Z]{4}$) and returns null for anything else, logging the&lt;br /&gt;
offending payload. VivoImeiActivationService skips the IMEI when the code is&lt;br /&gt;
null instead of posting the garbage; it is retried on the next run.&lt;br /&gt;
&lt;br /&gt;
Also drops a System.out.println of the full base64 captcha image.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37393</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=37393</guid></item>
<item><pubDate>Sun, 17 May 2026 15:36:54 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36580 – Adjust IMEI activation deferral: secondary 4 days, tertiary 2 days ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Adjust IMEI activation deferral: secondary 4 days, tertiary 2 days for Vivo/Oppo/Realme&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=36580</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=36580</guid></item>
<item><pubDate>Tue, 28 Apr 2026 18:18:07 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36420 – OkHttp→RestClient migration for IMEI activation services (Itel, Tecno, Vivo). Added ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;OkHttp→RestClient migration for IMEI activation services (Itel, Tecno, Vivo). Added test deps. Updated RunOnceTasks, ScheduledTasks, OrderTrackingService.&lt;/div&gt;~ /trunk/profitmandi-cron/build.gradle&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/itelImeiActivation/ItelImeiActivationNewService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/itelImeiActivation/ItelImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/itelImeiActivation/TecnoImeiActivation.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ordertracking/OrderTrackingService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=36420</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=36420</guid></item>
<item><pubDate>Mon, 13 Apr 2026 16:13:18 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36260 – Fix: add @Transactional(NOT_SUPPORTED) on Vivo methods to suspend ScheduledTasks outer ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix: add @Transactional(NOT_SUPPORTED) on Vivo methods to suspend ScheduledTasks outer transaction&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=36260</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=36260</guid></item>
<item><pubDate>Sun, 12 Apr 2026 10:26:19 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36253 – Separate secondary/tertiary IMEI activation crons for Vivo/Oppo/Realme, perf fixes: shared ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;Separate secondary/tertiary IMEI activation crons for Vivo/Oppo/Realme, perf fixes: shared saveActivation, Response leak fixes, /tmp cleanup, OpenCV static init, early break, remove class-level @Transactional from StandAlone&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OppoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/RealmeImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=36253</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=36253</guid></item>
<item><pubDate>Sat, 15 Jun 2024 15:09:29 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 33453 – Do not run Vivo Activations on 1st of every month</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Do not run Vivo Activations on 1st of every month&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=33453</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=33453</guid></item>
<item><pubDate>Fri, 04 Nov 2022 15:54:08 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 31128 – Fixed Scheduling issues</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed Scheduling issues&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=31128</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=31128</guid></item>
<item><pubDate>Fri, 09 Sep 2022 16:00:29 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30937 – Fixed activation logic</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed activation logic&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30937</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30937</guid></item>
<item><pubDate>Wed, 18 May 2022 10:59:02 +0530</pubDate><dc:creator>tejbeer</dc:creator><title>Rev 30430 – change</title><description>&lt;div&gt;&lt;strong&gt;tejbeer – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;change&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30430</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30430</guid></item>
<item><pubDate>Mon, 02 May 2022 21:06:30 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30376 – Added Einvoice Files</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Einvoice Files&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30376</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30376</guid></item>
<item><pubDate>Mon, 02 May 2022 18:01:52 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30371 – Added Einvoice Files</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Einvoice Files&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30371</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30371</guid></item>
<item><pubDate>Mon, 02 May 2022 17:32:59 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30369 – Added Einvoice Files</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Einvoice Files&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30369</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30369</guid></item>
<item><pubDate>Tue, 26 Apr 2022 17:53:58 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30343 – Added Einvoice Files</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Einvoice Files&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30343</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30343</guid></item>
<item><pubDate>Mon, 25 Apr 2022 17:55:17 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30337 – Fixed ahead issue</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed ahead issue&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30337</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30337</guid></item>
<item><pubDate>Mon, 25 Apr 2022 17:41:27 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30335 – Fixed vivo</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed vivo&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CaptchaService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30335</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30335</guid></item>
<item><pubDate>Fri, 22 Apr 2022 12:28:42 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30329 – </title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30329</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30329</guid></item>
<item><pubDate>Sat, 26 Mar 2022 17:05:04 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 30209 – Added Oppo Activation</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Oppo Activation&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/StandAlone.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OnBoardingRelatedSchelduleTask.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OppoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30209</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=30209</guid></item>
<item><pubDate>Fri, 22 Oct 2021 16:16:17 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 29477 – </title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29477</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29477</guid></item>
<item><pubDate>Wed, 20 Oct 2021 17:00:02 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 29471 – </title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29471</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29471</guid></item>
<item><pubDate>Wed, 20 Oct 2021 16:59:41 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 29470 – </title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29470</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29470</guid></item>
<item><pubDate>Wed, 20 Oct 2021 16:57:40 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 29469 – </title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29469</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29469</guid></item>
<item><pubDate>Wed, 20 Oct 2021 16:31:21 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 29468 – </title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29468</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29468</guid></item>
<item><pubDate>Wed, 20 Oct 2021 16:19:14 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 29466 – </title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29466</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29466</guid></item>
<item><pubDate>Tue, 19 Oct 2021 20:03:19 +0530</pubDate><dc:creator>manish</dc:creator><title>Rev 29457 – commit</title><description>&lt;div&gt;&lt;strong&gt;manish – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;commit&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29457</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29457</guid></item>
<item><pubDate>Tue, 19 Oct 2021 19:25:01 +0530</pubDate><dc:creator>manish</dc:creator><title>Rev 29456 – commit</title><description>&lt;div&gt;&lt;strong&gt;manish – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;commit&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29456</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29456</guid></item>
<item><pubDate>Tue, 19 Oct 2021 19:20:25 +0530</pubDate><dc:creator>manish</dc:creator><title>Rev 29455 – commit</title><description>&lt;div&gt;&lt;strong&gt;manish – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;commit&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29455</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29455</guid></item>
<item><pubDate>Tue, 19 Oct 2021 19:11:50 +0530</pubDate><dc:creator>manish</dc:creator><title>Rev 29451 – commit</title><description>&lt;div&gt;&lt;strong&gt;manish – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;commit&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29451</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FVivoImeiActivationService.java&amp;rev=29451</guid></item>
</channel></rss>