package com.pritom.kumar; import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardWatchEventKinds; import java.nio.file.WatchEvent; import java.nio.file.WatchKey; import java.nio.file.WatchService; import java.util.List; /** * Created by pritom on 25/09/2016. */ public class ChangeFileListener { public static void main(String[] args) throws Exception { startWatch("C:/tmp"); } public static void startWatch(String location) { try { Path directory = Paths.get(location); println("Start listening directory: [" + location + "]"); final WatchService watchService = directory.getFileSystem().newWatchService(); directory.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY); while (true) { final WatchKey watchKey = watchService.take(); handleWatchTriggered(location, watchKey); boolean valid = watchKey.reset(); if (!valid) { throw new Exception("Watcher failed for listen [" + location + "]"); } } } catch (Exception ex) { ex.printStackTrace(); } } private static void handleWatchTriggered(String location, WatchKey watchKey) throws Exception { List<WatchEvent<?>> watchEventList = watchKey.pollEvents(); for (WatchEvent watchEvent : watchEventList) { if (watchEvent.kind() == StandardWatchEventKinds.ENTRY_CREATE) { println("Created: [" + watchEvent.context().toString() + "]"); File fileCreated = new File(location + "/" + watchEvent.context().toString()); } else if (watchEvent.kind() == StandardWatchEventKinds.ENTRY_DELETE) { println("Deleted: [" + watchEvent.context().toString() + "]"); } else if (watchEvent.kind() == StandardWatchEventKinds.ENTRY_MODIFY) { println("Modified: [" + watchEvent.context().toString() + "]"); } } } public static void println(Object o) { System.out.println("" + o); } }
Monday, September 26, 2016
File Change Listener Implementation Using Java
Friday, September 23, 2016
MySQL list all foreign key and other constraint names
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_SCHEMA = 'database_name'
Sunday, September 11, 2016
Python parse xml
import sys import xml.etree.ElementTree as ET class XmlParser: def fixAttrs(self, attrs, c): nattrs = {} for attr in attrs: nattrs[self.buildXmlnsKey(attr, c)] = attrs[attr] return nattrs def buildXmlnsKey(self, tagtxt, tcounter): done = False if not tagtxt.startswith("{"): return tagtxt #print 'Search for: ', tagtxt, ' in ', tcounter if self.nsmap.has_key(str(tcounter)): nslmap = self.nsmap[str(tcounter)] #print 'nslmap-->', nslmap for obj in nslmap: if done is False: for key in obj.keys(): kstr = '{' + key + '}' #print 'key--->', key, ', --->', kstr if tagtxt.startswith(kstr) and done is False: done = True kval = obj[key] #print 'need to replace to: ', kval if len(kval): tagtxt = tagtxt.replace(kstr, kval+':', 1) else: tagtxt = tagtxt.replace(kstr, '', 1) if done is False and tcounter > 0: tcounter = tcounter - 1 return self.buildXmlnsKey(tagtxt, tcounter) return tagtxt def xmlToDict(self, node, dictclass = None): if dictclass is None: dictclass = {} self.ncounter = self.ncounter + 1 if len(node): if node.attrib: #print node.attrib dictclass['<<attr>>'] = self.fixAttrs(node.attrib, self.ncounter); for child in node: tagtxt = self.buildXmlnsKey(child.tag, self.ncounter) newItem = self.xmlToDict(child) #tagtxt = child.tag if dictclass.has_key(tagtxt): if type(dictclass[tagtxt]) is type([]): dictclass[tagtxt].append(newItem) else: oldItem = dictclass[tagtxt]; dictclass[tagtxt] = []; dictclass[tagtxt].append(oldItem); dictclass[tagtxt].append(newItem); else: dictclass[tagtxt] = newItem else: if node.text is None: text = '' else: text = node.text.strip() if node.attrib: #print fixAttrs(node.attrib, ncounter) dictclass['<<attr>>'] = self.fixAttrs(node.attrib, self.ncounter) dictclass['<<value>>'] = text; else: dictclass = text; return dictclass def printDic(self, dic, pos = None): if pos is None: pos = 0 for key in dic.keys(): #print 'key--->', key if dic[key] is None: print self.getLenStr(pos), key, '' elif type(dic[key]) is type({}): npos = pos + 1 print self.getLenStr(pos) + str(key), '{' self.printDic(dic[key], npos) print self.getLenStr(pos) + '}' elif type(dic[key]) is type([]): npos = pos + 1 print self.getLenStr(pos) + str(key), '[' self.printList(dic[key], npos) print self.getLenStr(pos) + ']' else: print self.getLenStr(pos) + str(key), ': ', dic[key] def printList(self, dic, pos = None): if pos is None: pos = 0 lindex = -1 for obj in dic: lindex = lindex + 1 if obj is not None: if type(obj) is type({}): print self.getLenStr(pos) + str(lindex)+'. {' npos = pos + 1 self.printDic(obj, npos) print self.getLenStr(pos) + '}' elif type(obj) is type([]): print self.getLenStr(pos) + str(lindex)+'. [' npos = pos + 1 self.printList(obj, npos) print self.getLenStr(pos) +']' else: print self.getLenStr(pos), str(lindex)+'.', obj def getLenStr(self, pos): sstr = '' while pos > 0: sstr = sstr + ' ' pos = pos - 1 return sstr def __init__(self, fileLocation): self.location = fileLocation; def parse(self): tree = ET.parse(self.location) root = tree.getroot() self.nsmap = {} self.lcounter = 0 for event, elem in ET.iterparse(self.location, events=('start', 'end', 'start-ns', 'end-ns')): if event == 'start-ns': #print 'start-ns', lcounter a, b = elem if b is not None and len(b): #print "A-->", a, ", B-->" , b scounter = self.lcounter + 0 if not self.nsmap.has_key(str(scounter)): self.nsmap[str(scounter)] = [] self.nsmap[str(scounter)].append({'http://www.w3.org/XML/1998/namespace': 'xml'}); self.nsmap[str(scounter)].append({b: str(a)}) elif event == 'start': #print 'start', lcounter if not self.nsmap.has_key(str(self.lcounter)) and self.nsmap.has_key(str(self.lcounter - 1)): #print 'exist: ', nsmap[str(lcounter - 1)] self.nsmap[str(self.lcounter)] = self.nsmap[str(self.lcounter - 1)]; self.lcounter = self.lcounter + 1 self.ncounter = 0 self.dic = self.xmlToDict(root) self.dic = {self.buildXmlnsKey(root.tag, 0): self.dic} return self.dic; if __name__ == "__main__": xmlObj = XmlParser('xml7.xml'); theXmlDictionary = xmlObj.parse() xmlObj.printDic(theXmlDictionary);
Suppose you have the xml as file:
<?xml version="1.0"?> <lib:library xmlns:lib="http://eric.van-der-vlist.com/ns/library" xmlns:hr="http://eric.van-der-vlist.com/ns/person"> <lib:book id="b0836217462" available="true"> <lib:isbn>0836217462</lib:isbn> <lib:title xml:lang="en">Being a Dog Is a Full-Time Job</lib:title> <hr:author id="CMS"> <hr:name>Charles M Schulz</hr:name> <hr:born>1922-11-26</hr:born> <hr:dead>2000-02-12</hr:dead> </hr:author> <lib:character id="PP"> <hr:name>Peppermint Patty</hr:name> <hr:born>1966-08-22</hr:born> <lib:qualification>bold, brash and tomboyish</lib:qualification> </lib:character> <lib:character id="Snoopy"> <hr:name>Snoopy</hr:name> <hr:born>1950-10-04</hr:born> <lib:qualification>extroverted beagle</lib:qualification> </lib:character> <lib:character id="Schroeder"> <hr:name>Schroeder</hr:name> <hr:born>1951-05-30</hr:born> <lib:qualification>brought classical music to the Peanuts strip</lib:qualification> </lib:character> <lib:character id="Lucy"> <hr:name>Lucy</hr:name> <hr:born>1952-03-03</hr:born> <lib:qualification>bossy, crabby and selfish</lib:qualification> </lib:character> </lib:book> <Purchase> <PurchaseId>AAAAA</PurchaseId> <PurchaseType>ONLINE</PurchaseType> </Purchase> <Purchase> <PurchaseId>BBBBB</PurchaseId> <PurchaseType>OFFLINE</PurchaseType> </Purchase> <Purchase paid='True'> <Purchase age='30'> <Purchase>HMM 1</Purchase> <Purchase>HMM 2</Purchase> </Purchase> </Purchase> </lib:library>
Output would be like this:
lib:library { Purchase [ 0. { PurchaseId : AAAAA PurchaseType : ONLINE } 1. { PurchaseId : BBBBB PurchaseType : OFFLINE } 2. { <<attr>> { paid : True } Purchase { <<attr>> { age : 30 } Purchase [ 0. HMM 1 1. HMM 2 ] } } ] lib:book { hr:author { <<attr>> { id : CMS } hr:name : Charles M Schulz hr:born : 1922-11-26 hr:dead : 2000-02-12 } <<attr>> { available : true id : b0836217462 } lib:title { <<attr>> { xml:lang : en } <<value>> : Being a Dog Is a Full-Time Job } lib:isbn : 0836217462 lib:character [ 0. { <<attr>> { id : PP } hr:name : Peppermint Patty hr:born : 1966-08-22 lib:qualification : bold, brash and tomboyish } 1. { <<attr>> { id : Snoopy } hr:name : Snoopy hr:born : 1950-10-04 lib:qualification : extroverted beagle } 2. { <<attr>> { id : Schroeder } hr:name : Schroeder hr:born : 1951-05-30 lib:qualification : brought classical music to the Peanuts strip } 3. { <<attr>> { id : Lucy } hr:name : Lucy hr:born : 1952-03-03 lib:qualification : bossy, crabby and selfish } ] } }
Friday, September 9, 2016
An educational story according to workers & managers in an organization
āĻāĻ āĻĻেāĻļে āĻিāϞো āĻāĻ āĻĒিāĻĒā§া। āϏে āĻĒ্āϰāϤিāĻĻিāύ ⧝āĻাā§ āĻ
āĻĢিāϏে āĻĸুāĻāϤো। āϤাāϰāĻĒāϰ āĻাāϰো āϏāĻ্āĻে āϏāĻŽā§ āύāώ্āĻ āύা āĻāϰে āϏāĻ্āĻে āϏāĻ্āĻে āĻাāĻে āĻŦāϏে āϝেāϤ।
āϏে āϝে āĻĒāϰিāĻŽাāĻŖ āĻাāĻ āĻāϰāϤ, āϤাāϤে āĻোāĻŽ্āĻĒাāύিāϰ āĻā§āĻĒাāĻĻāύ āĻšāϤো āĻĒ্āϰāĻুāϰ āĻāĻŦং āĻāϰ āĻĢāϞে āϏে āĻāύāύ্āĻĻেāϰ āϏāĻ্āĻেāĻ āĻীāĻŦāύ āύিāϰ্āĻŦাāĻš āĻāϰāϤ।
āĻāĻ āĻ
āĻĢিāϏেāϰ āϏিāĻāĻ āϏিংāĻš āĻ
āĻŦাāĻ āĻšā§ে āĻĻেāĻāϤ, āĻāĻ āĻĒিঁāĻĒā§াāĻি āĻোāύো āϧāϰāύেāϰ āϏুāĻĒাāϰāĻিāĻļāύ āĻাā§াāĻ āĻĒ্āϰāĻুāϰ āĻাāĻ āĻāϰāĻে। āϏিংāĻš āĻাāĻŦāϞ, āĻĒিঁāĻĒā§াāĻে āϝāĻĻি āĻাāϰāĻ āϏুāĻĒাāϰāĻিāĻļāύে āĻĻেāĻā§া āĻšā§, āϤাāĻšāϞে āϏে āĻāϰāĻ āĻŦেāĻļি āĻাāĻ āĻāϰāϤে āĻĒাāϰāĻŦে।
āĻā§েāĻ āĻĻিāύেāϰ āĻŽāϧ্āϝেāĻ āϏিংāĻš āĻāĻāĻি āϤেāϞাāĻĒোāĻাāĻে āĻĒিঁāĻĒā§াāϰ āϏুāĻĒাāϰāĻাāĻāĻাāϰ āĻšিāϏেāĻŦে āύিā§োāĻ āĻĻিāϞ। āϏুāĻĒাāϰāĻাāĻāĻাāϰ āĻšিāϏেāĻŦে āĻāĻ āϤেāϞাāĻĒোāĻাāĻিāϰ āĻিāϞ āĻĻীāϰ্āĻāĻĻিāύেāϰ āĻ
āĻিāĻ্āĻāϤা, āĻāϰ āϏে āĻĻুāϰ্āĻĻাāύ্āϤ āϰিāĻĒোāϰ্āĻ āϞিāĻāϤে āĻĒাāϰāϤ।
āϤেāϞাāĻĒোāĻাāĻি āĻĒ্āϰāĻĨāĻŽেāĻ āϏিāĻĻ্āϧাāύ্āϤ āύিāϞ, āĻāĻ āĻ
āĻĢিāϏে āĻāĻāĻি āĻ
্āϝাāĻেāύāĻĄেāύ্āϏ āϏিāϏ্āĻেāĻŽ āĻĨাāĻা āĻāĻিāϤ।
āĻā§েāĻ āĻĻিāύেāϰ āĻŽāϧ্āϝেāĻ āϤেāϞাāĻĒোāĻাāϰ āĻŽāύে āĻšāϞো, āϤাāϰ āĻāĻāĻāύ āϏেāĻ্āϰেāĻাāϰি āĻĻāϰāĻাāϰ, āϝে āϤাāĻে āϰিāĻĒোāϰ্āĻ āϞিāĻāϤে āϏাāĻšাāϝ্āϝ āĻāϰāĻŦে। … āϏে āĻāĻāĻা āĻŽাāĻā§āϏাāĻে āύিā§োāĻ āĻĻিāϞ āĻāĻ āĻাāĻে āϝে āϏāĻŦ āĻĢোāύāĻāϞ āĻŽāύিāĻāϰ āĻāϰāĻŦে, āĻāϰ āύāĻĨিāĻĒāϤ্āϰ āϰাāĻāĻŦে।
āϏিংāĻš āĻুāĻŦ āĻāύāύ্āĻĻ āύিā§ে āĻĻেāĻāϞ āϝে āϤেāϞাāĻĒোāĻা āϤাāĻে āĻĒ্āϰāϤিāĻĻিāύেāϰ āĻাāĻেāϰ āĻšিāϏাāĻŦ āĻĻিāĻ্āĻে āĻāϰ āϏেāĻুāϞো āĻŦিāĻļ্āϞেāώāĻŖ āĻāϰāĻে āĻ্āϰাāĻĢেāϰ āĻŽাāϧ্āϝāĻŽে। āĻĢāϞে āĻুāĻŦ āϏāĻšāĻেāĻ āĻā§āĻĒাāĻĻāύেāϰ āϧাāϰা āϏāĻŽ্āĻĒāϰ্āĻে āϧাāϰāĻŖা āύেāĻā§া āϝাāĻ্āĻে āĻāĻŦং āϏিংāĻš āϏেāĻুāϞো āĻŦোāϰ্āĻĄ āĻŽিāĻিংā§ে ‘āĻĒ্āϰেāĻেāύ্āĻেāĻļāύ’ āĻāĻাāϰে āĻĒেāĻļ āĻāϰে āĻŦাāĻšāĻŦা āĻĒাāĻ্āĻে।
āĻিāĻুāĻĻিāύেāϰ āĻŽāϧ্āϝেāĻ āϤেāϞাāĻĒোāĻাāϰ āĻāĻāĻি āĻāĻŽ্āĻĒিāĻāĻাāϰ āĻ āϞেāĻাāϰ āĻĒ্āϰিāύ্āĻাāϰ āĻĒ্āϰā§োāĻāύ āĻšāϞো āĻāĻŦং āĻāĻুāϞো āĻĻেāĻāĻাāϞেāϰ āĻāύ্āϝ āĻāĻāĻি āĻĄিāĻĒাāϰ্āĻāĻŽেāύ্āĻ āĻāĻ āύ āĻāϰāϞ। āĻāĻāĻি āĻŦিāĻļেāώāĻ্āĻ āĻšিāϏেāĻŦে āύিā§োāĻ āĻĒেāϞ āĻŽাāĻি।
āĻāĻŽাāĻĻেāϰ āĻāϰ্āĻŽী āĻĒিঁāĻĒā§া, āϝে āĻĒ্āϰāϤিāĻĻিāύ āĻ
āĻĢিāϏে āĻāϏে āĻĒ্āϰāĻুāϰ āĻাāĻ āĻāϰে āĻŽāύেāϰ āϏুāĻে āĻাāύ āĻাāĻāϤে āĻাāĻāϤে āĻŦাāϏাā§ āĻĢিāϰāϤ, āϤাāĻে āĻāĻāύ āĻĒ্āϰāĻুāϰ āĻĒেāĻĒাāϰ āĻā§াāϰ্āĻ āĻāϰāϤে āĻšā§, āϏāĻĒ্āϤাāĻšেāϰ āĻাāϰ āĻĻিāύāĻ āύাāύা āĻŽিāĻিংā§ে āĻšাāĻিāϰা āĻĻিāϤে āĻšā§।
āύিāϤ্āϝāĻĻিāύ āĻāϏāĻŦ āĻাāĻŽেāϞাāϰ āĻাāϰāĻŖে āĻাāĻে āĻŦ্āϝাāĻাāϤ āĻāĻাā§ āĻā§āĻĒাāĻĻāύ āĻāĻŽāϤে āϞাāĻāϞ, āĻāϰ āϏে āĻŦিāϰāĻ্āϤ āĻšāϤে āϞাāĻāϞ।
āϏিংāĻš āϏিāĻĻ্āϧাāύ্āϤ āύিāϞ, āĻĒিঁāĻĒā§া āϝে āĻŦিāĻাāĻে āĻাāĻ āĻāϰে, āϏেāĻাāĻে āĻāĻāĻা āĻāϞাāĻĻা āĻĄিāĻĒাāϰ্āĻāĻŽেāύ্āĻ āĻোāώāĻŖা āĻāϰে āϏেāĻাāϰ āĻāĻāĻāύ āĻĄিāĻĒাāϰ্āĻāĻŽেāύ্āĻ āĻĒ্āϰāϧাāύ āύিā§োāĻ āĻĻেāĻā§াāϰ āĻāĻাāĻ āĻāĻĒāϝুāĻ্āϤ āϏāĻŽā§।
āϏিংāĻš āĻিঁāĻিāĻĒোāĻাāĻে āĻāĻ āĻĄিāĻĒাāϰ্āĻāĻŽেāύ্āĻেāϰ āĻĒ্āϰāϧাāύ āĻšিāϏেāĻŦে āύিā§োāĻ āĻĻিāϞ। āĻিঁāĻিāĻĒোāĻা āĻĒ্āϰāĻĨāĻŽ āĻĻিāύ āĻāϏেāĻ āϤাāϰ āϰুāĻŽেāϰ āĻāύ্āϝ āĻāĻāĻা āĻāϰাāĻŽāĻĻাā§āĻ āĻাāϰ্āĻĒেāĻ āĻ āĻেā§াāϰেāϰ āĻ
āϰ্āĻĄাāϰ āĻĻিāϞ।
āĻā§েāĻ āĻĻিāύেāϰ āĻŽāϧ্āϝেāĻ āĻ
āĻĢিāϏেāϰ āĻāύ্āϝ āϏ্āĻ্āϰ্āϝাāĻেāĻিāĻ āĻĒ্āϞ্āϝাāύ āϤৈāϰি āĻāϰāϤে āĻিঁāĻি āĻĒোāĻাāϰ āĻāĻāĻি āĻāĻŽ্āĻĒিāĻāĻাāϰ āĻ āĻŦ্āϝāĻ্āϤিāĻāϤ āϏāĻšāĻাāϰীāϰ āĻĒ্āϰā§োāĻāύ āĻšāϞো। āĻāĻŽ্āĻĒিāĻāĻাāϰ āύāϤুāύ āĻেāύা āĻšāϞেāĻ āĻŦ্āϝāĻ্āϤিāĻāϤ āϏāĻšāĻাāϰী āĻšিāϏেāĻŦে āĻিঁāĻিāĻĒোāĻা āύিā§োāĻ āĻĻিāϞ āϤাāϰ āĻĒুāϰোāύো āĻ
āĻĢিāϏেāϰ āĻāĻāĻāύāĻে।
āĻĒিঁāĻĒā§া āϝেāĻাāύে āĻাāĻ āĻāϰে, āϏেāĻাāύে āĻāĻে āĻিāϞ āĻāĻŽā§āĻাāϰ āĻāĻāĻা āĻĒāϰিāĻŦেāĻļ। āĻāĻāύ āϏেāĻাāύে āĻেāĻ āĻāĻĨা āĻŦāϞে āύা, āĻšাāϏে āύা। āϏāĻŦাāĻ āĻুāĻŦ āĻŽāύāĻŽāϰা āĻšā§ে āĻাāĻ āĻāϰে।
āĻিঁāĻিāĻĒোāĻা āĻĒāϰিāϏ্āĻĨিāϤি āĻāύ্āύā§āύে āϏিংāĻšāĻে āĻŦোāĻাāϞ, ‘āĻ
āĻĢিāϏে āĻাāĻেāϰ āĻĒāϰিāĻŦেāĻļ’ āĻļীāϰ্āώāĻ āĻāĻāĻা āϏ্āĻাāĻĄি āĻুāĻŦ āĻāϰুāϰি āĻšā§ে āĻĒā§েāĻে।
āĻĒāϰ্āϝাāϞোāĻāύা āĻāϰে āϏিংāĻš āĻĻেāĻāϤে āĻĒেāϞ, āĻĒিঁāĻĒā§াāϰ āĻŦিāĻাāĻে āĻā§āĻĒাāĻĻāύ āĻāĻেāϰ āϤুāϞāύাā§ āĻ
āύেāĻ āĻāĻŽে āĻেāĻে।
āĻাāĻেāĻ āϏিংāĻš āĻā§েāĻ āĻĻিāύেāϰ āĻŽāϧ্āϝেāĻ āϏ্āĻŦāύাāĻŽāĻ্āϝাāϤ āĻāύāϏাāϞāĻ্āϝাāύ্āĻ āĻĒেঁāĻাāĻে āĻ
āĻĄিāĻ āϰিāĻĒোāϰ্āĻ āĻāĻŦং āĻā§āĻĒাāĻĻāύ āĻŦাā§াāύোāϰ āĻāĻĒাā§ āĻŦাāϤāϞে āĻĻেāĻā§াāϰ āĻāύ্āϝ āύিā§োāĻ āĻĻিāϞ।
āĻĒেঁāĻা āϤিāύ āĻŽাāϏ āĻĒিঁāĻĒā§াāϰ āĻĄিāĻĒাāϰ্āĻāĻŽেāύ্āĻ āĻŽāύিāĻāϰ āĻāϰāϞ, āϏāĻŦাāϰ āϏāĻ্āĻে āĻā§াāύ āĻু āĻā§াāύ āĻāĻĨা āĻŦāϞāϞ। āϤাāϰāĻĒāϰ āĻŦেāĻļ āĻŽোāĻাāϏোāĻা āĻāĻāĻা āϰিāĻĒোāϰ্āĻ āĻĒেāĻļ āĻāϰāϞ āϏিংāĻšেāϰ āĻাāĻে। āĻāĻ āϰিāĻĒোāϰ্āĻেāϰ āϏাāϰāĻŽāϰ্āĻŽ āĻšāϞো, āĻāĻ āĻ
āĻĢিāϏে āĻĒ্āϰā§োāĻāύেāϰ āϤুāϞāύাā§ āĻāϰ্āĻŽী āĻŦেāĻļি। āĻāϰ্āĻŽী āĻাঁāĻাāĻ āĻāϰা āĻšোāĻ।
āĻĒāϰেāϰ āϏāĻĒ্āϤাāĻšেāĻ āĻŦেāĻļ āĻā§েāĻāĻāύ āĻāϰ্āĻŽী āĻাঁāĻাāĻ āĻāϰা āĻšāϞো। āĻŦāϞুāύ āϤো, āĻে āϏāϰ্āĻŦāĻĒ্āϰāĻĨāĻŽ āĻাāĻāϰি āĻšাāϰাāϞ?
āĻāĻ āĻšāϤāĻাāĻ্āϝ āĻĒিঁāĻĒā§া। āĻাāϰāĻŖ, āĻĒেঁāĻাāϰ āϰিāĻĒোāϰ্āĻে āϞেāĻা āĻিāϞ, ‘āĻāĻ āĻāϰ্āĻŽীāϰ āĻŽোāĻিāĻেāĻļāύেāϰ āĻŦ্āϝাāĻĒāĻ āĻ
āĻাāĻŦ āϰā§েāĻে āĻāĻŦং āϏāϰ্āĻŦāĻĻাāĻ āύেāϤিāĻŦাāĻāĻ āĻāĻāϰāĻŖ āĻāϰāĻে, āϝা āĻ
āĻĢিāϏেāϰ āĻāϰ্āĻŽāĻĒāϰিāĻŦেāĻļ āύāώ্āĻ āĻāϰāĻে।
āĻāĻŦাāϰ āĻাāĻŦুāύ āϤো, āĻāĻĒāύাāϰ āĻĒāĻিāĻļাāύāĻা āĻী āĻāĻĒāύাāϰ āĻ
āϰ্āĻাāύাāĻāĻেāĻļāύে?
( āϏংāĻৃāĻšীāϤঃ āĻŦিāĻĻেāĻļি āĻāϞ্āĻĒেāϰ āĻ
āĻŦāϞāĻŽ্āĻŦāύে )
Subscribe to:
Posts (Atom)